diff --git a/scripts/update_specs_from_pricing.py b/scripts/update_specs_from_pricing.py index 2cc2c6e036..2f8858b3ac 100755 --- a/scripts/update_specs_from_pricing.py +++ b/scripts/update_specs_from_pricing.py @@ -256,7 +256,7 @@ def get_results(service, product_families): def write_output(resource, filename, obj): - filename = f"src/cfnlint/data/AdditionalSchemas/{resource}/{filename}.json" + filename = f"src/cfnlint/data/schemas/extensions/{resource}/{filename}.json" output = { "_description": "Automatically updated using update_specs_from_pricing", } @@ -272,56 +272,56 @@ def main(): configure_logging() write_output( - "aws-ec2-instance", - "instancetype-enum", + "aws_ec2_instance", + "instancetype_enum", get_results("AmazonEC2", ["Compute Instance", "Compute Instance (bare metal)"]), ) - write_output("aws-amazonmq-broker", "instancetype-enum", get_mq_pricing()) - write_output("aws-rds-dbinstance", "dbinstanceclass-enum", get_rds_pricing()) + write_output("aws_amazonmq_broker", "instancetype_enum", get_mq_pricing()) + write_output("aws_rds_dbinstance", "dbinstanceclass_enum", get_rds_pricing()) write_output( - "aws-redshift-cluster", - "nodetype-enum", + "aws_redshift_cluster", + "nodetype_enum", get_results("AmazonRedshift", ["Compute Instance"]), ) - write_output("aws-dax-cluster", "nodetype-enum", get_dax_pricing()) + write_output("aws_dax_cluster", "nodetype_enum", get_dax_pricing()) write_output( - "aws-docdb-dbinstance", - "dbinstanceclass-enum", + "aws_docdb_dbinstance", + "dbinstanceclass_enum", get_results("AmazonDocDB", ["Database Instance"]), ) write_output( - "aws-neptune-dbinstance", - "dbinstanceclass-enum", + "aws_neptune_dbinstance", + "dbinstanceclass_enum", get_results("AmazonNeptune", ["Database Instance"]), ) write_output( - "aws-elasticache-cachecluster", - "cachenodetype-enum", + "aws_elasticache_cachecluster", + "cachenodetype_enum", get_results("AmazonElastiCache", ["Cache Instance"]), ) write_output( - "aws-elasticsearch-domain", - "elasticsearchclusterconfig-instancetype-enum", + "aws_elasticsearch_domain", + "elasticsearchclusterconfig_instancetype_enum", get_results("AmazonES", ["Elastic Search Instance"]), ) write_output( - "aws-emr-cluster", - "instancetypeconfig-instancetype-enum", + "aws_emr_cluster", + "instancetypeconfig_instancetype_enum", get_results("ElasticMapReduce", ["Elastic Map Reduce Instance"]), ) write_output( - "aws-managedblockchain-node", - "nodeconfiguration-instancetype-enum", + "aws_managedblockchain_node", + "nodeconfiguration_instancetype_enum", get_results("AmazonManagedBlockchain", ["Blockchain Instance"]), ) write_output( - "aws-gamelift-fleet", - "ec2instancetype-enum", + "aws_gamelift_fleet", + "ec2instancetype_enum", get_results("AmazonGameLift", ["GameLift EC2 Instance"]), ) write_output( - "aws-appstream-fleet", - "instancetype-enum", + "aws_appstream_fleet", + "instancetype_enum", get_results("AmazonAppStream", ["Streaming Instance"]), ) diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json index 90820bbed4..6b37febf74 100644 --- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json @@ -1 +1 @@ -{"etag": "\"c4554b2486f55661d5fb3183d8a96f76\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"433e97e79195923f7df34afd9d140bfc\"", "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 31c76609db..14fb558ba6 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"848273a1e4b412521297f59b18420f25\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"b9a2627f7ddd44c485a06b9a32744c91\"", "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 ee50d9772b..b9b652c771 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"9f4830c00d7f87ca853986d2545f1d01\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2942b5da1f38dbc7f021f3aa250eeeef\"", "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 4e18a8f616..b0c6d217c1 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"de99ba2b8c361a7fc9c287ff97fa454b\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e66593754e392c10b5ca50bbf9c25aa2\"", "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 e456a83b24..ac9f5053b2 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"92867531227472953a107325da357227\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"1a55ecd468419d09a728c9527ee933da\"", "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 new file mode 100644 index 0000000000..e01537ebf9 --- /dev/null +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -0,0 +1 @@ +{"etag": "\"ea98f11b7d83b5197e654f92a1bb2ca0\"", "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 52842fa493..ddaafcbee8 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"bfcc6d0d7b35a0bb02a5eec055c72c54\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c46c95c7ed44602bfc9295244bb24555\"", "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 3c7f17bd1a..97c072d989 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"a975a010ed2e978601932a1e23e39ca1\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"99f1d850cb322cf375814482f4f62f38\"", "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 6142c2ddeb..e2216d134d 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"602e275f1b6d9140ddff40bf85df074b\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b0fbf4b86f09444c3a8fe57f300bc6af\"", "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 b1391ed4f8..886ebeed61 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"4adab7a2cbe16fd1d5f5166f8ed96490\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"53bf6bfe1a65c71118cd5933cb1a6f65\"", "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 7968259820..54c6929281 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"abf1cbf8ec2ca95a841fafa65f203d73\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"3865d796bbf0653f3d356fbb6ca0e4bc\"", "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 f6d5410cbc..1358b74c10 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"553ead8c6383a5513e89c118fc0a76fa\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"93ca2d5239f934b51b0a30e7c637bd86\"", "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 new file mode 100644 index 0000000000..a7898ae6ee --- /dev/null +++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json @@ -0,0 +1 @@ +{"etag": "\"865284161d6ab61d3aa5df18bae86afc\"", "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 640570ed49..98b57807e6 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"9cab9e4e7c42070646ea5cb7ddf12673\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e6ef271bc0f5429aa319f61f9b8a0111\"", "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 0b759cb323..04c4cd84e7 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"55c3c6a57c4fdcdfe19a2f9fc1b37709\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"20f7e6acd7723aec8a4f2af86d82858f\"", "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 69d588983d..521bb28c51 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"99637874245e0fc4d689e089b509c71f\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"fd20c93eb0211bd7233d54c026fd5617\"", "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 79ef83a12f..3a3148eaff 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"5a405c8d79e003f96c7f914257515a28\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c0806d3c00e893b6104f56cb79587153\"", "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 1100668f64..8b2ef4e736 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"e6fd332f9e862d78ec3d13e5bbc14ac1\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"f26c6037b2473531063d3ea58d3f405d\"", "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 4d2c6326f7..caa887e769 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"dac2729a26b353b780477f7c85b503b5\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"379744668ec008c28bd03bdf98dcabaf\"", "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 5b7b1043d8..23b7f6af1e 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"6a558346b34aae0703fab2175d6fedeb\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"17d17126355ab60c8aabcc77f5062019\"", "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 new file mode 100644 index 0000000000..9c9f1b28b6 --- /dev/null +++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json @@ -0,0 +1 @@ +{"etag": "\"a7e186e7106e69c36bcba50677d5ad32\"", "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 new file mode 100644 index 0000000000..42ceb0a421 --- /dev/null +++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json @@ -0,0 +1 @@ +{"etag": "\"2e1645e99ebe0be7f57d3cc9168b3d0e\"", "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 0e4f04420b..ca2d91f437 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"bada6fdfb00327bec04e8816442a1c86\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"780be88cb1cd73d126f3ebe2395a7d98\"", "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 new file mode 100644 index 0000000000..a33debb649 --- /dev/null +++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json @@ -0,0 +1 @@ +{"etag": "\"696b659fef341334c7fecfed9e89ff6b\"", "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 ea48eb24e9..da506e03da 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"40972194f50e4736b8430ddbf8b38171\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"88ade1a08daf8d9df3255807a3dd3e53\"", "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 ea2fc95364..4d75d96d54 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"352dafc39c9395124f50fceef38e1d42\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"57a7b254335710ea944e488d2e5896bb\"", "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 a29b336a2b..2231b8175e 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"20a68803f995b17afe0e9338003d4639\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"717e70cac2abd9d623693d1e36fee94d\"", "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 e9a35d9fd3..22de21c1c7 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"4ba4d2eba5a611c1e448280da877c5b2\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c5675327d2991cb4dd80a7e20c1065ff\"", "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 new file mode 100644 index 0000000000..659ee1fea6 --- /dev/null +++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json @@ -0,0 +1 @@ +{"etag": "\"6931546dec4a9931516941cc3a7b31d0\"", "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 20f1a3d1b9..5851727162 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"b06383fcaf89bad0cc0f8237db14ce73\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"bd541cc660f08b31649a41edca102406\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json index ff8fe5eb7b..a3efbf3914 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"958c67c4835894c0d88bb4b40f3a2e15\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"18aaa39acdc89354df689e82f416c3b4\"", "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 23c10081f8..f35dc29866 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"3108f0dd509ed81ddc5862eb093c4209\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"148c59fcb4a0d50021475f79ca0882c7\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/schemas/extensions/aws_amazonmq_broker/instancetype_enum.json b/src/cfnlint/data/schemas/extensions/aws_amazonmq_broker/instancetype_enum.json index aec929a3a9..a1f7ff9197 100644 --- a/src/cfnlint/data/schemas/extensions/aws_amazonmq_broker/instancetype_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_amazonmq_broker/instancetype_enum.json @@ -2,280 +2,328 @@ "_description": "Automatically updated using update_specs_from_pricing", "af-south-1": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", - "mq.m5.large", - "mq.t3.micro", - "mq.m5.2xlarge" + "mq.t3.micro" ] }, "ap-east-1": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", - "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.t3.micro" ] }, "ap-northeast-1": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", - "mq.t2.micro", "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "ap-northeast-2": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", - "mq.t2.micro", "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "ap-northeast-3": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", - "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.t3.micro" ] }, "ap-south-1": { "enum": [ - "mq.m5.xlarge", - "mq.m4.large", - "mq.m5.4xlarge", "mq.t2.micro", + "mq.m5.2xlarge", "mq.m5.large", + "mq.m5.xlarge", + "mq.m5.4xlarge", "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m4.large" ] }, - "ap-southeast-1": { + "ap-south-2": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", + "mq.t3.micro" + ] + }, + "ap-southeast-1": { + "enum": [ "mq.t2.micro", + "mq.m5.2xlarge", "mq.m5.large", + "mq.m5.xlarge", + "mq.m5.4xlarge", "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "ap-southeast-2": { "enum": [ - "mq.m5.xlarge", - "mq.m4.large", - "mq.m5.4xlarge", "mq.t2.micro", + "mq.m5.2xlarge", "mq.m5.large", + "mq.m5.xlarge", + "mq.m5.4xlarge", "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "ap-southeast-3": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", + "mq.t3.micro" + ] + }, + "ap-southeast-4": { + "enum": [ + "mq.m5.2xlarge", "mq.m5.large", - "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m5.xlarge", + "mq.m5.4xlarge", + "mq.t3.micro" ] }, "ca-central-1": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", - "mq.t2.micro", "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "cn-north-1": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", - "mq.t2.micro", "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "cn-northwest-1": { "enum": [ - "mq.m5.xlarge", - "mq.m4.large", - "mq.m5.4xlarge", "mq.t2.micro", + "mq.m5.2xlarge", "mq.m5.large", + "mq.m5.xlarge", + "mq.m5.4xlarge", "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "eu-central-1": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", - "mq.t2.micro", "mq.t3.micro", + "mq.m4.large" + ] + }, + "eu-central-2": { + "enum": [ + "mq.m5.2xlarge", "mq.m5.large", - "mq.m5.2xlarge" + "mq.m5.xlarge", + "mq.m5.4xlarge", + "mq.t3.micro" ] }, "eu-north-1": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", - "mq.m5.large", - "mq.t3.micro", - "mq.m5.2xlarge" + "mq.t3.micro" ] }, "eu-south-1": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", + "mq.t3.micro" + ] + }, + "eu-south-2": { + "enum": [ + "mq.m5.2xlarge", "mq.m5.large", - "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m5.xlarge", + "mq.m5.4xlarge", + "mq.t3.micro" ] }, "eu-west-1": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", - "mq.t2.micro", "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "eu-west-2": { "enum": [ - "mq.m5.xlarge", - "mq.m4.large", - "mq.m5.4xlarge", "mq.t2.micro", + "mq.m5.2xlarge", "mq.m5.large", + "mq.m5.xlarge", + "mq.m5.4xlarge", "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "eu-west-3": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", - "mq.t2.micro", + "mq.t3.micro" + ] + }, + "il-central-1": { + "enum": [ + "mq.m5.16xl", + "mq.m5.2xlarge", + "mq.m5.24xl", "mq.m5.large", - "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m5.8xl", + "mq.m5.xlarge", + "mq.m5.4xlarge", + "mq.t3.micro" ] }, "me-central-1": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", - "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.t3.micro" ] }, "me-south-1": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", - "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.t3.micro" ] }, "sa-east-1": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", - "mq.t2.micro", "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "us-east-1": { "enum": [ - "mq.m5.xlarge", - "mq.m4.large", - "mq.m5.4xlarge", "mq.t2.micro", + "mq.m5.2xlarge", "mq.m5.large", + "mq.m5.xlarge", + "mq.m5.4xlarge", "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "us-east-2": { "enum": [ - "mq.m5.xlarge", - "mq.m4.large", - "mq.m5.4xlarge", "mq.t2.micro", + "mq.m5.2xlarge", "mq.m5.large", + "mq.m5.xlarge", + "mq.m5.4xlarge", "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "us-gov-east-1": { "enum": [ + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", "mq.m5.4xlarge", - "mq.m5.large", - "mq.t3.micro", - "mq.m5.2xlarge" + "mq.t3.micro" ] }, "us-gov-west-1": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", - "mq.t2.micro", "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "us-west-1": { "enum": [ + "mq.t2.micro", + "mq.m5.2xlarge", + "mq.m5.large", "mq.m5.xlarge", - "mq.m4.large", "mq.m5.4xlarge", - "mq.t2.micro", "mq.t3.micro", - "mq.m5.large", - "mq.m5.2xlarge" + "mq.m4.large" ] }, "us-west-2": { "enum": [ - "mq.m5.xlarge", - "mq.m4.large", - "mq.m5.4xlarge", "mq.t2.micro", + "mq.m5.2xlarge", "mq.m5.large", + "mq.m5.xlarge", + "mq.m5.4xlarge", "mq.t3.micro", - "mq.m5.2xlarge" + "mq.m4.large" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_appstream_fleet/instancetype_enum.json b/src/cfnlint/data/schemas/extensions/aws_appstream_fleet/instancetype_enum.json index b94f6a47e8..0b419a2f81 100644 --- a/src/cfnlint/data/schemas/extensions/aws_appstream_fleet/instancetype_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_appstream_fleet/instancetype_enum.json @@ -1,500 +1,577 @@ { "_description": "Automatically updated using update_specs_from_pricing", - "all": { - "enum": [ - "stream.standard.large" - ] - }, "ap-northeast-1": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", + "stream.standard.medium", + "stream.memory.z1d.xlarge", + "stream.graphics-design.large", + "stream.graphics.g5.4xlarge", "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", + "stream.graphics-pro.8xlarge", + "stream.memory.2xlarge", + "stream.graphics.g5.xlarge", "stream.memory.z1d.large", - "stream.graphics.g4dn.16xlarge", - "stream.standard.medium", - "stream.memory.xlarge", + "stream.graphics.g5.8xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g5.24xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.graphics.g5.2xlarge", + "stream.graphics.g5.16xlarge", + "stream.memory.4xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics-design.xlarge", - "stream.memory.z1d.xlarge", "stream.graphics.g4dn.xlarge", - "stream.graphics-pro.8xlarge", + "stream.graphics-pro.16xlarge", + "stream.memory.z1d.3xlarge", "stream.compute.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", + "stream.graphics-pro.4xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.graphics-design.4xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics.g5.12xlarge", + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "ap-northeast-2": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", - "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics.g4dn.16xlarge", - "stream.memory.z1d.large", "stream.standard.medium", - "stream.memory.xlarge", "stream.memory.z1d.xlarge", + "stream.memory.z1d.2xlarge", + "stream.memory.2xlarge", + "stream.memory.z1d.large", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.4xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics.g4dn.xlarge", + "stream.memory.z1d.3xlarge", "stream.compute.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "ap-south-1": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", - "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics.g4dn.16xlarge", - "stream.memory.z1d.large", "stream.standard.medium", - "stream.memory.xlarge", "stream.memory.z1d.xlarge", + "stream.memory.z1d.2xlarge", + "stream.graphics.g5.4xlarge", + "stream.memory.2xlarge", + "stream.graphics.g5.xlarge", + "stream.memory.z1d.large", + "stream.graphics.g5.8xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g5.24xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.4xlarge", + "stream.graphics.g5.16xlarge", + "stream.graphics.g5.2xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics.g4dn.xlarge", "stream.compute.4xlarge", + "stream.memory.z1d.3xlarge", "stream.graphics.g4dn.2xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics.g5.12xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "ap-southeast-1": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", + "stream.standard.medium", "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", + "stream.memory.z1d.xlarge", + "stream.graphics-design.large", + "stream.graphics-pro.8xlarge", + "stream.memory.2xlarge", "stream.memory.z1d.large", - "stream.graphics.g4dn.16xlarge", - "stream.standard.medium", - "stream.memory.xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.4xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics-design.xlarge", - "stream.memory.z1d.xlarge", "stream.graphics.g4dn.xlarge", - "stream.graphics-pro.8xlarge", + "stream.graphics-pro.16xlarge", + "stream.memory.z1d.3xlarge", "stream.compute.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", + "stream.graphics-pro.4xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.graphics-design.4xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "ap-southeast-2": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", + "stream.standard.medium", "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", - "stream.graphics.g4dn.16xlarge", + "stream.graphics-design.large", + "stream.memory.z1d.xlarge", + "stream.graphics-pro.8xlarge", + "stream.memory.2xlarge", "stream.memory.z1d.large", - "stream.standard.medium", - "stream.memory.xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.4xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics-design.xlarge", - "stream.memory.z1d.xlarge", "stream.graphics.g4dn.xlarge", - "stream.graphics-pro.8xlarge", + "stream.graphics-pro.16xlarge", "stream.compute.4xlarge", + "stream.memory.z1d.3xlarge", + "stream.graphics-pro.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.graphics-design.4xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "ca-central-1": { "enum": [ - "stream.standard.small", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.standard.large", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", - "stream.graphics.g4dn.16xlarge", "stream.standard.medium", - "stream.memory.xlarge", + "stream.graphics-design.large", + "stream.graphics.g5.4xlarge", + "stream.graphics-pro.8xlarge", + "stream.memory.2xlarge", + "stream.graphics.g5.xlarge", + "stream.graphics.g5.8xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g5.24xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.graphics.g5.2xlarge", + "stream.memory.4xlarge", + "stream.graphics.g5.16xlarge", + "stream.memory.8xlarge", "stream.graphics-design.xlarge", "stream.graphics.g4dn.xlarge", - "stream.graphics-pro.8xlarge", + "stream.graphics-pro.16xlarge", "stream.compute.4xlarge", + "stream.graphics-pro.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.graphics-design.4xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics.g5.12xlarge", + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "eu-central-1": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", + "stream.standard.medium", + "stream.memory.z1d.xlarge", "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", - "stream.graphics.g4dn.16xlarge", + "stream.graphics-design.large", + "stream.graphics.g5.4xlarge", + "stream.graphics-pro.8xlarge", + "stream.graphics.g5.xlarge", + "stream.memory.2xlarge", "stream.memory.z1d.large", - "stream.standard.medium", - "stream.memory.xlarge", + "stream.graphics.g5.8xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g5.24xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.4xlarge", + "stream.graphics.g5.16xlarge", + "stream.graphics.g5.2xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics-design.xlarge", - "stream.memory.z1d.xlarge", "stream.graphics.g4dn.xlarge", - "stream.graphics-pro.8xlarge", + "stream.graphics-pro.16xlarge", + "stream.memory.z1d.3xlarge", "stream.compute.4xlarge", + "stream.graphics-pro.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", - "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.graphics-design.4xlarge", + "stream.memory.large", + "stream.graphics.g4dn.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics.g5.12xlarge", + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "eu-west-1": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", + "stream.standard.medium", + "stream.memory.z1d.xlarge", "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", - "stream.graphics.g4dn.16xlarge", + "stream.graphics.g5.4xlarge", + "stream.graphics-design.large", + "stream.graphics-pro.8xlarge", + "stream.memory.2xlarge", + "stream.graphics.g5.xlarge", "stream.memory.z1d.large", - "stream.standard.medium", - "stream.memory.xlarge", + "stream.graphics.g5.8xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g5.24xlarge", + "stream.memory.4xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.graphics.g5.16xlarge", + "stream.graphics.g5.2xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics-design.xlarge", - "stream.memory.z1d.xlarge", "stream.graphics.g4dn.xlarge", - "stream.graphics-pro.8xlarge", + "stream.graphics-pro.16xlarge", "stream.compute.4xlarge", + "stream.memory.z1d.3xlarge", + "stream.graphics-pro.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.graphics-design.4xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics.g5.12xlarge", + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "eu-west-2": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", - "stream.graphics.g4dn.16xlarge", - "stream.memory.z1d.large", "stream.standard.medium", - "stream.memory.xlarge", - "stream.graphics-design.xlarge", "stream.memory.z1d.xlarge", - "stream.graphics.g4dn.xlarge", + "stream.graphics.g5.4xlarge", + "stream.graphics-design.large", "stream.graphics-pro.8xlarge", + "stream.graphics.g5.xlarge", + "stream.memory.z1d.large", + "stream.graphics.g5.8xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g5.24xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.graphics.g5.2xlarge", + "stream.graphics.g5.16xlarge", + "stream.memory.z1d.12xlarge", + "stream.graphics-design.xlarge", + "stream.graphics.g4dn.xlarge", + "stream.graphics-pro.16xlarge", "stream.compute.4xlarge", + "stream.memory.z1d.3xlarge", + "stream.graphics-pro.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.graphics-design.4xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.graphics-pro.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics.g5.12xlarge", + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "sa-east-1": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", - "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.memory.z1d.large", - "stream.graphics.g4dn.16xlarge", "stream.standard.medium", - "stream.memory.xlarge", - "stream.memory.z1d.xlarge", + "stream.graphics.g5.4xlarge", + "stream.memory.2xlarge", + "stream.graphics.g5.xlarge", + "stream.graphics.g5.8xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g5.24xlarge", + "stream.memory.4xlarge", + "stream.graphics.g5.2xlarge", + "stream.graphics.g5.16xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.8xlarge", "stream.graphics.g4dn.xlarge", "stream.compute.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics.g5.12xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "us-east-1": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", + "stream.standard.medium", + "stream.memory.z1d.xlarge", "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", - "stream.graphics.g4dn.16xlarge", + "stream.graphics.g5.4xlarge", + "stream.graphics-design.large", + "stream.graphics-pro.8xlarge", + "stream.memory.2xlarge", + "stream.graphics.g5.xlarge", "stream.memory.z1d.large", - "stream.standard.medium", - "stream.memory.xlarge", + "stream.graphics.g5.8xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g5.24xlarge", + "stream.memory.4xlarge", + "stream.graphics.g5.2xlarge", + "stream.graphics.g5.16xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics-design.xlarge", - "stream.memory.z1d.xlarge", "stream.graphics.g4dn.xlarge", - "stream.graphics-pro.8xlarge", + "stream.graphics-pro.16xlarge", + "stream.memory.z1d.3xlarge", "stream.compute.4xlarge", + "stream.graphics-pro.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.graphics-design.4xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics.g5.12xlarge", + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "us-east-2": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", + "stream.graphics-design.large", + "stream.standard.medium", + "stream.memory.z1d.xlarge", "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", - "stream.graphics.g4dn.16xlarge", + "stream.graphics-pro.8xlarge", + "stream.memory.2xlarge", "stream.memory.z1d.large", - "stream.standard.medium", - "stream.memory.xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.memory.4xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics-design.xlarge", - "stream.memory.z1d.xlarge", "stream.graphics.g4dn.xlarge", - "stream.graphics-pro.8xlarge", + "stream.graphics-pro.16xlarge", + "stream.memory.z1d.3xlarge", "stream.compute.4xlarge", + "stream.graphics-pro.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.graphics-design.4xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, - "us-gov-west-1": { + "us-gov-east-1": { "enum": [ - "stream.standard.small", "stream.standard.xlarge", + "stream.standard.medium", + "stream.memory.2xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.4xlarge", + "stream.memory.8xlarge", + "stream.graphics.g4dn.xlarge", + "stream.compute.4xlarge", + "stream.graphics.g4dn.2xlarge", + "stream.compute.xlarge", + "stream.standard.2xlarge", "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", "stream.standard.large", + "stream.memory.large", + "stream.graphics.g4dn.4xlarge", + "stream.compute.large", "stream.compute.2xlarge", - "stream.graphics.g4dn.16xlarge", + "stream.graphics.g4dn.16xlarge" + ] + }, + "us-gov-west-1": { + "enum": [ + "stream.standard.xlarge", "stream.standard.medium", - "stream.memory.xlarge", - "stream.graphics.g4dn.xlarge", "stream.graphics-pro.8xlarge", + "stream.memory.2xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.memory.4xlarge", + "stream.memory.8xlarge", + "stream.graphics.g4dn.xlarge", + "stream.graphics-pro.16xlarge", "stream.compute.4xlarge", + "stream.graphics-pro.4xlarge", "stream.graphics.g4dn.2xlarge", - "stream.compute.8xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-pro.16xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] }, "us-west-2": { "enum": [ - "stream.standard.small", - "stream.memory.z1d.6xlarge", "stream.standard.xlarge", - "stream.graphics.g4dn.8xlarge", - "stream.memory.z1d.3xlarge", - "stream.standard.large", "stream.memory.z1d.2xlarge", - "stream.compute.2xlarge", - "stream.graphics-design.2xlarge", - "stream.memory.z1d.large", - "stream.graphics.g4dn.16xlarge", + "stream.memory.z1d.xlarge", "stream.standard.medium", - "stream.memory.xlarge", + "stream.graphics-design.large", + "stream.graphics.g5.4xlarge", + "stream.graphics-pro.8xlarge", + "stream.graphics.g5.xlarge", + "stream.memory.2xlarge", + "stream.memory.z1d.large", + "stream.graphics.g5.8xlarge", + "stream.standard.small", + "stream.compute.8xlarge", + "stream.graphics.g5.24xlarge", + "stream.graphics.g4dn.12xlarge", + "stream.graphics.g5.2xlarge", + "stream.memory.4xlarge", + "stream.graphics.g5.16xlarge", + "stream.memory.8xlarge", + "stream.memory.z1d.12xlarge", "stream.graphics-design.xlarge", - "stream.memory.z1d.xlarge", "stream.graphics.g4dn.xlarge", - "stream.graphics-pro.8xlarge", + "stream.graphics-pro.16xlarge", "stream.compute.4xlarge", + "stream.memory.z1d.3xlarge", "stream.graphics.g4dn.2xlarge", - "stream.graphics-design.4xlarge", - "stream.compute.8xlarge", + "stream.graphics-pro.4xlarge", "stream.compute.xlarge", - "stream.memory.8xlarge", "stream.standard.2xlarge", - "stream.graphics-design.large", - "stream.graphics-pro.16xlarge", - "stream.memory.z1d.12xlarge", - "stream.graphics.g4dn.12xlarge", + "stream.graphics.g4dn.8xlarge", + "stream.memory.xlarge", + "stream.standard.large", + "stream.memory.z1d.6xlarge", + "stream.graphics-design.4xlarge", + "stream.memory.large", "stream.graphics.g4dn.4xlarge", - "stream.memory.2xlarge", - "stream.graphics-pro.4xlarge", - "stream.memory.4xlarge", "stream.compute.large", - "stream.memory.large" + "stream.graphics.g5.12xlarge", + "stream.graphics-design.2xlarge", + "stream.compute.2xlarge", + "stream.graphics.g4dn.16xlarge" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_dax_cluster/nodetype_enum.json b/src/cfnlint/data/schemas/extensions/aws_dax_cluster/nodetype_enum.json index 6a66cb59d2..b7c61b972c 100644 --- a/src/cfnlint/data/schemas/extensions/aws_dax_cluster/nodetype_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_dax_cluster/nodetype_enum.json @@ -2,371 +2,371 @@ "_description": "Automatically updated using update_specs_from_pricing", "ap-northeast-1": { "enum": [ - "dax.t3.medium", - "dax.r5.large", + "dax.r3.8xlarge", + "dax.r5.16xlarge", + "dax.r4.large", + "dax.t2.small", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r3.2xlarge", + "dax.r4.16xlarge", "dax.r4.xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.r5.16xlarge", - "dax.r5.24xlarge", + "dax.r3.large", + "dax.r4.4xlarge", "dax.r3.4xlarge", - "dax.r3.xlarge", - "dax.t2.medium", "dax.r4.8xlarge", - "dax.r4.4xlarge", - "dax.t3.small", - "dax.r3.large", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r3.8xlarge", "dax.r4.2xlarge", - "dax.r3.2xlarge", + "dax.r5.12xlarge", + "dax.t2.medium", + "dax.r5.large", + "dax.t3.small", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r5.4xlarge", - "dax.t2.small" + "dax.t3.medium", + "dax.r5.24xlarge", + "dax.r3.xlarge" ] }, "ap-south-1": { "enum": [ - "dax.t3.medium", - "dax.r5.large", + "dax.r3.8xlarge", + "dax.r5.16xlarge", + "dax.r4.large", + "dax.t2.small", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r3.2xlarge", + "dax.r4.16xlarge", "dax.r4.xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.r5.16xlarge", - "dax.r5.24xlarge", + "dax.r3.large", + "dax.r4.4xlarge", "dax.r3.4xlarge", - "dax.r3.xlarge", - "dax.t2.medium", "dax.r4.8xlarge", - "dax.r4.4xlarge", - "dax.t3.small", - "dax.r3.large", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r3.8xlarge", "dax.r4.2xlarge", - "dax.r3.2xlarge", + "dax.r5.12xlarge", + "dax.t2.medium", + "dax.r5.large", + "dax.t3.small", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r5.4xlarge", - "dax.t2.small" + "dax.t3.medium", + "dax.r5.24xlarge", + "dax.r3.xlarge" ] }, "ap-southeast-1": { "enum": [ - "dax.t3.medium", - "dax.r5.large", + "dax.r3.8xlarge", + "dax.r5.16xlarge", + "dax.r4.large", + "dax.t2.small", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r3.2xlarge", + "dax.r4.16xlarge", "dax.r4.xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.r5.16xlarge", - "dax.r5.24xlarge", + "dax.r3.large", + "dax.r4.4xlarge", "dax.r3.4xlarge", - "dax.t2.medium", - "dax.r3.xlarge", "dax.r4.8xlarge", - "dax.r4.4xlarge", - "dax.t3.small", - "dax.r3.large", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r3.8xlarge", "dax.r4.2xlarge", - "dax.r3.2xlarge", + "dax.r5.12xlarge", + "dax.t2.medium", + "dax.r5.large", + "dax.t3.small", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r5.4xlarge", - "dax.t2.small" + "dax.t3.medium", + "dax.r5.24xlarge", + "dax.r3.xlarge" ] }, "ap-southeast-2": { "enum": [ - "dax.t3.medium", - "dax.r5.large", + "dax.r3.8xlarge", + "dax.r5.16xlarge", + "dax.r4.large", + "dax.t2.small", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r3.2xlarge", + "dax.r4.16xlarge", "dax.r4.xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.r5.16xlarge", - "dax.r5.24xlarge", + "dax.r3.large", + "dax.r4.4xlarge", "dax.r3.4xlarge", - "dax.r3.xlarge", - "dax.t2.medium", "dax.r4.8xlarge", - "dax.r4.4xlarge", - "dax.t3.small", - "dax.r3.large", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r3.8xlarge", "dax.r4.2xlarge", - "dax.r3.2xlarge", + "dax.r5.12xlarge", + "dax.t2.medium", + "dax.r5.large", + "dax.t3.small", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r5.4xlarge", - "dax.t2.small" + "dax.t3.medium", + "dax.r5.24xlarge", + "dax.r3.xlarge" ] }, "cn-north-1": { "enum": [ - "dax.t3.medium", + "dax.r5.16xlarge", "dax.r5.large", "dax.t3.small", "dax.r5.8xlarge", + "dax.t2.small", + "dax.t3.medium", + "dax.r5.12xlarge", "dax.r5.xlarge", - "dax.r5.4xlarge", + "dax.r5.24xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.t2.small", - "dax.r5.16xlarge", "dax.t2.medium", - "dax.r5.24xlarge" + "dax.r5.4xlarge" ] }, "cn-northwest-1": { "enum": [ - "dax.t3.medium", + "dax.r4.16xlarge", "dax.r5.large", + "dax.r5.16xlarge", + "dax.r4.8xlarge", + "dax.r4.2xlarge", "dax.t3.small", - "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r4.xlarge", - "dax.r5.4xlarge", - "dax.r5.2xlarge", "dax.r4.large", + "dax.r5.8xlarge", "dax.t2.small", "dax.r5.12xlarge", - "dax.r4.16xlarge", - "dax.r5.16xlarge", + "dax.t3.medium", + "dax.r5.2xlarge", + "dax.r4.xlarge", "dax.t2.medium", - "dax.r5.24xlarge", - "dax.r4.2xlarge", - "dax.r4.8xlarge", - "dax.r4.4xlarge" + "dax.r4.4xlarge", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r5.24xlarge" ] }, "eu-central-1": { "enum": [ - "dax.t3.medium", + "dax.r4.16xlarge", + "dax.r5.16xlarge", "dax.r5.large", + "dax.r4.8xlarge", + "dax.r4.2xlarge", "dax.t3.small", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r4.xlarge", - "dax.r4.16xlarge", - "dax.r5.4xlarge", "dax.r4.large", - "dax.r5.12xlarge", "dax.t2.small", - "dax.r5.2xlarge", - "dax.r5.16xlarge", + "dax.t3.medium", + "dax.r4.xlarge", + "dax.r5.12xlarge", "dax.t2.medium", + "dax.r5.xlarge", + "dax.r4.4xlarge", "dax.r5.24xlarge", - "dax.r4.2xlarge", - "dax.r4.8xlarge", - "dax.r4.4xlarge" + "dax.r5.4xlarge", + "dax.r5.2xlarge" ] }, "eu-west-1": { "enum": [ - "dax.t3.medium", - "dax.r5.large", + "dax.r3.8xlarge", + "dax.r5.16xlarge", + "dax.r4.large", + "dax.t2.small", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r3.2xlarge", + "dax.r4.16xlarge", "dax.r4.xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.r5.16xlarge", - "dax.r5.24xlarge", + "dax.r3.large", + "dax.r4.4xlarge", "dax.r3.4xlarge", - "dax.r3.xlarge", - "dax.t2.medium", "dax.r4.8xlarge", - "dax.r4.4xlarge", - "dax.t3.small", - "dax.r3.large", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r3.8xlarge", "dax.r4.2xlarge", - "dax.r3.2xlarge", + "dax.r5.12xlarge", + "dax.t2.medium", + "dax.r5.large", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r5.4xlarge", - "dax.t2.small" + "dax.t3.small", + "dax.t3.medium", + "dax.r5.24xlarge", + "dax.r3.xlarge" ] }, "eu-west-2": { "enum": [ - "dax.t3.medium", + "dax.r4.16xlarge", + "dax.r5.16xlarge", "dax.r5.large", + "dax.r4.8xlarge", + "dax.r4.2xlarge", "dax.t3.small", + "dax.r4.large", "dax.r5.8xlarge", + "dax.t2.small", "dax.r5.xlarge", - "dax.r4.xlarge", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r5.4xlarge", "dax.r5.12xlarge", - "dax.t2.small", - "dax.r5.2xlarge", - "dax.r5.16xlarge", "dax.t2.medium", + "dax.t3.medium", "dax.r5.24xlarge", - "dax.r4.2xlarge", - "dax.r4.8xlarge", + "dax.r5.2xlarge", + "dax.r4.xlarge", + "dax.r5.4xlarge", "dax.r4.4xlarge" ] }, "eu-west-3": { "enum": [ - "dax.t3.medium", + "dax.r4.16xlarge", + "dax.r5.16xlarge", "dax.r5.large", - "dax.t3.small", + "dax.r4.8xlarge", + "dax.r4.2xlarge", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r4.xlarge", - "dax.r4.16xlarge", - "dax.r5.2xlarge", "dax.r4.large", - "dax.r5.12xlarge", + "dax.t3.small", "dax.t2.small", - "dax.r5.4xlarge", - "dax.r5.16xlarge", + "dax.t3.medium", + "dax.r5.12xlarge", + "dax.r5.2xlarge", "dax.t2.medium", + "dax.r4.xlarge", + "dax.r4.4xlarge", "dax.r5.24xlarge", - "dax.r4.2xlarge", - "dax.r4.8xlarge", - "dax.r4.4xlarge" + "dax.r5.4xlarge", + "dax.r5.xlarge" ] }, "sa-east-1": { "enum": [ - "dax.t3.medium", - "dax.r5.large", + "dax.r3.8xlarge", + "dax.r5.16xlarge", + "dax.r4.large", + "dax.t2.small", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r3.2xlarge", + "dax.r4.16xlarge", "dax.r4.xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.r5.16xlarge", - "dax.r5.24xlarge", + "dax.r3.large", + "dax.r4.4xlarge", "dax.r3.4xlarge", - "dax.r3.xlarge", - "dax.t2.medium", "dax.r4.8xlarge", - "dax.r4.4xlarge", - "dax.t3.small", - "dax.r3.large", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r3.8xlarge", "dax.r4.2xlarge", - "dax.r3.2xlarge", + "dax.r5.12xlarge", + "dax.t2.medium", + "dax.r5.large", + "dax.t3.small", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r5.4xlarge", - "dax.t2.small" + "dax.t3.medium", + "dax.r5.24xlarge", + "dax.r3.xlarge" ] }, "us-east-1": { "enum": [ - "dax.t3.medium", - "dax.r5.large", + "dax.r3.8xlarge", + "dax.r5.16xlarge", + "dax.r4.large", + "dax.t2.small", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r3.2xlarge", + "dax.r4.16xlarge", "dax.r4.xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.r5.16xlarge", - "dax.r5.24xlarge", + "dax.r3.large", + "dax.r4.4xlarge", "dax.r3.4xlarge", - "dax.t2.medium", - "dax.r3.xlarge", "dax.r4.8xlarge", - "dax.r4.4xlarge", - "dax.t3.small", - "dax.r3.large", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r3.8xlarge", "dax.r4.2xlarge", - "dax.r3.2xlarge", + "dax.r5.12xlarge", + "dax.t2.medium", + "dax.r5.large", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r5.4xlarge", - "dax.t2.small" + "dax.t3.small", + "dax.t3.medium", + "dax.r5.24xlarge", + "dax.r3.xlarge" ] }, "us-east-2": { "enum": [ - "dax.t3.medium", + "dax.r4.16xlarge", "dax.r5.large", - "dax.t3.small", + "dax.r5.16xlarge", + "dax.r4.8xlarge", + "dax.r4.2xlarge", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r4.xlarge", - "dax.r5.4xlarge", - "dax.r4.16xlarge", - "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.t2.small", "dax.r4.large", - "dax.r5.16xlarge", + "dax.t3.small", + "dax.t2.small", + "dax.r5.12xlarge", + "dax.r4.xlarge", "dax.t2.medium", + "dax.r5.2xlarge", "dax.r5.24xlarge", - "dax.r4.2xlarge", - "dax.r4.8xlarge", - "dax.r4.4xlarge" + "dax.t3.medium", + "dax.r4.4xlarge", + "dax.r5.4xlarge", + "dax.r5.xlarge" ] }, "us-west-1": { "enum": [ - "dax.t3.medium", - "dax.r5.large", + "dax.r3.8xlarge", + "dax.r5.16xlarge", + "dax.r4.large", + "dax.t2.small", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r3.2xlarge", + "dax.r4.16xlarge", "dax.r4.xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.r5.16xlarge", - "dax.r5.24xlarge", + "dax.r3.large", + "dax.r4.4xlarge", "dax.r3.4xlarge", - "dax.r3.xlarge", - "dax.t2.medium", "dax.r4.8xlarge", - "dax.r4.4xlarge", - "dax.t3.small", - "dax.r3.large", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r3.8xlarge", "dax.r4.2xlarge", - "dax.r3.2xlarge", + "dax.r5.12xlarge", + "dax.t2.medium", + "dax.r5.large", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r5.4xlarge", - "dax.t2.small" + "dax.t3.small", + "dax.t3.medium", + "dax.r5.24xlarge", + "dax.r3.xlarge" ] }, "us-west-2": { "enum": [ - "dax.t3.medium", - "dax.r5.large", + "dax.r3.8xlarge", + "dax.r5.16xlarge", + "dax.r4.large", + "dax.t2.small", + "dax.r5.xlarge", + "dax.r5.4xlarge", + "dax.r3.2xlarge", + "dax.r4.16xlarge", "dax.r4.xlarge", "dax.r5.2xlarge", - "dax.r5.12xlarge", - "dax.r5.16xlarge", - "dax.r5.24xlarge", + "dax.r3.large", + "dax.r4.4xlarge", "dax.r3.4xlarge", - "dax.r3.xlarge", - "dax.t2.medium", "dax.r4.8xlarge", - "dax.r4.4xlarge", - "dax.t3.small", - "dax.r3.large", - "dax.r4.16xlarge", - "dax.r4.large", - "dax.r3.8xlarge", "dax.r4.2xlarge", - "dax.r3.2xlarge", + "dax.r5.12xlarge", + "dax.t2.medium", + "dax.r5.large", "dax.r5.8xlarge", - "dax.r5.xlarge", - "dax.r5.4xlarge", - "dax.t2.small" + "dax.t3.small", + "dax.t3.medium", + "dax.r5.24xlarge", + "dax.r3.xlarge" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_docdb_dbinstance/dbinstanceclass_enum.json b/src/cfnlint/data/schemas/extensions/aws_docdb_dbinstance/dbinstanceclass_enum.json index 11d5ee5c17..0d163bfad5 100644 --- a/src/cfnlint/data/schemas/extensions/aws_docdb_dbinstance/dbinstanceclass_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_docdb_dbinstance/dbinstanceclass_enum.json @@ -1,404 +1,468 @@ { "_description": "Automatically updated using update_specs_from_pricing", - "ap-northeast-1": { + "ap-east-1": { "enum": [ - "db.r5.2xlarge", "db.r5.xlarge", - "db.t3.medium", + "db.r5.large", + "db.r6g.xlarge", + "db.r6g.16xlarge", + "db.r6g.large", + "db.r5.12xlarge", + "db.r6g.8xlarge", "db.r5.8xlarge", + "db.r5.16xlarge", "db.r6g.2xlarge", - "db.r6g.8xlarge", "db.r6g.4xlarge", - "db.r5.12xlarge", - "db.r5.16xlarge", - "db.r6g.12xlarge", + "db.r5.2xlarge", "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, - "ap-northeast-2": { + "ap-northeast-1": { "enum": [ - "db.r5.2xlarge", "db.r5.xlarge", - "db.t3.medium", + "db.r5.large", + "db.r6g.xlarge", + "db.r5.12xlarge", + "db.r6g.16xlarge", + "db.r6g.large", + "db.r6g.8xlarge", "db.r5.8xlarge", + "db.r5.16xlarge", "db.r6g.2xlarge", "db.r6g.4xlarge", - "db.r5.16xlarge", - "db.r5.12xlarge", - "db.r6g.12xlarge", + "db.r5.2xlarge", "db.t4g.medium", - "db.r5.24xlarge", "db.r5.4xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.r6g.12xlarge" + ] + }, + "ap-northeast-2": { + "enum": [ + "db.r5.xlarge", + "db.r5.large", "db.r6g.xlarge", "db.r6g.16xlarge", - "db.r5.large", + "db.r6g.large", + "db.r5.12xlarge", "db.r6g.8xlarge", - "db.r6g.large" + "db.r5.8xlarge", + "db.r5.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", + "db.t4g.medium", + "db.r5.4xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.r6g.12xlarge" ] }, "ap-south-1": { "enum": [ - "db.r5.2xlarge", + "db.r5.xlarge", + "db.r5.large", + "db.r6g.16xlarge", + "db.r6g.xlarge", + "db.r6g.large", + "db.r5.12xlarge", + "db.r6g.8xlarge", + "db.r5.16xlarge", + "db.r5.8xlarge", "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", + "db.t4g.medium", + "db.r5.4xlarge", + "db.r5.24xlarge", "db.t3.medium", - "db.r5.8xlarge", + "db.r6g.12xlarge" + ] + }, + "ap-south-2": { + "enum": [ "db.r5.xlarge", + "db.r5.large", + "db.r6g.16xlarge", + "db.r6g.xlarge", + "db.r5.12xlarge", + "db.r6g.large", "db.r6g.8xlarge", - "db.r6g.4xlarge", "db.r5.16xlarge", - "db.r5.12xlarge", - "db.r6g.12xlarge", + "db.r5.8xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, "ap-southeast-1": { "enum": [ - "db.r5.2xlarge", "db.r5.xlarge", - "db.t3.medium", - "db.r6g.2xlarge", + "db.r5.large", + "db.r6g.16xlarge", + "db.r6g.xlarge", + "db.r6g.large", + "db.r5.12xlarge", + "db.r6g.8xlarge", + "db.r5.16xlarge", "db.r5.8xlarge", + "db.r6g.2xlarge", "db.r6g.4xlarge", - "db.r5.16xlarge", - "db.r5.12xlarge", - "db.r6g.12xlarge", + "db.r5.2xlarge", "db.t4g.medium", - "db.r5.24xlarge", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r6g.large" + "db.r5.24xlarge", + "db.t3.medium", + "db.r6g.12xlarge" ] }, "ap-southeast-2": { "enum": [ - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r5.xlarge", - "db.r6g.8xlarge", - "db.r6g.4xlarge", + "db.r5.large", "db.r5.12xlarge", + "db.r6g.16xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge", "db.r5.16xlarge", - "db.r6g.12xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, "ca-central-1": { "enum": [ - "db.r5.2xlarge", "db.r5.xlarge", - "db.t3.medium", - "db.r5.8xlarge", - "db.r6g.2xlarge", - "db.r6g.4xlarge", "db.r5.large", + "db.r6g.xlarge", "db.r5.12xlarge", + "db.r6g.large", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge", "db.r5.16xlarge", - "db.r6g.12xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", "db.r5.24xlarge", - "db.r6g.8xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, "cn-north-1": { "enum": [ - "db.r5.2xlarge", "db.r5.xlarge", - "db.t3.medium", + "db.r5.large", + "db.r5.12xlarge", + "db.r6g.16xlarge", + "db.r6g.xlarge", + "db.r6g.large", + "db.r6g.8xlarge", "db.r5.8xlarge", + "db.r5.16xlarge", "db.r6g.2xlarge", "db.r6g.4xlarge", - "db.r5.large", - "db.r5.16xlarge", - "db.r5.12xlarge", - "db.r6g.12xlarge", + "db.r5.2xlarge", "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", "db.r5.24xlarge", - "db.r6g.8xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, "cn-northwest-1": { "enum": [ - "db.r5.2xlarge", "db.r5.xlarge", - "db.t3.medium", - "db.r6g.2xlarge", - "db.r5.8xlarge", - "db.r6g.8xlarge", - "db.r6g.4xlarge", + "db.r5.large", "db.r5.12xlarge", + "db.r6g.16xlarge", + "db.r6g.xlarge", + "db.r6g.large", + "db.r6g.8xlarge", "db.r5.16xlarge", - "db.r6g.12xlarge", + "db.r5.8xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, "eu-central-1": { "enum": [ - "db.r5.2xlarge", - "db.r6g.2xlarge", "db.r5.xlarge", - "db.t3.medium", - "db.r5.8xlarge", - "db.r6g.4xlarge", + "db.r5.large", + "db.r6g.xlarge", + "db.r6g.16xlarge", "db.r5.12xlarge", + "db.r6g.large", + "db.r6g.8xlarge", + "db.r5.8xlarge", "db.r5.16xlarge", - "db.r6g.12xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", "db.t4g.medium", - "db.r5.24xlarge", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r6g.large" + "db.r5.24xlarge", + "db.t3.medium", + "db.r6g.12xlarge" ] }, "eu-south-1": { "enum": [ - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r5.xlarge", - "db.r6g.4xlarge", "db.r5.large", - "db.r5.16xlarge", + "db.r6g.16xlarge", + "db.r6g.xlarge", + "db.r6g.large", "db.r5.12xlarge", - "db.r6g.12xlarge", + "db.r6g.8xlarge", + "db.r5.16xlarge", + "db.r5.8xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", "db.r5.24xlarge", - "db.r6g.8xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, "eu-west-1": { "enum": [ + "db.r5.large", + "db.r6g.large", + "db.r4.8xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.2xlarge", - "db.r6g.4xlarge", - "db.r4.16xlarge", + "db.r5.12xlarge", + "db.r4.xlarge", "db.t4g.medium", - "db.r6g.large", - "db.t3.medium", - "db.r5.8xlarge", "db.r6g.12xlarge", "db.r6g.16xlarge", - "db.r4.8xlarge", - "db.r4.large", - "db.r5.12xlarge", - "db.r4.xlarge", - "db.r5.large", "db.r6g.8xlarge", - "db.r5.24xlarge", + "db.r4.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", "db.r4.2xlarge", - "db.r5.16xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.r5.24xlarge", + "db.t3.medium" ] }, "eu-west-2": { "enum": [ - "db.r5.2xlarge", "db.r5.xlarge", - "db.r6g.2xlarge", - "db.r5.8xlarge", - "db.t3.medium", - "db.r6g.8xlarge", - "db.r6g.4xlarge", + "db.r5.large", + "db.r6g.xlarge", "db.r5.12xlarge", + "db.r6g.large", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge", "db.r5.16xlarge", - "db.r6g.12xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, "eu-west-3": { "enum": [ - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r5.xlarge", - "db.r6g.4xlarge", + "db.r5.large", + "db.r6g.16xlarge", + "db.r6g.xlarge", + "db.r6g.large", "db.r5.12xlarge", + "db.r6g.8xlarge", "db.r5.16xlarge", - "db.r6g.12xlarge", + "db.r5.8xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", "db.t4g.medium", - "db.r5.24xlarge", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r6g.large" + "db.r5.24xlarge", + "db.t3.medium", + "db.r6g.12xlarge" ] }, "sa-east-1": { "enum": [ - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r5.xlarge", + "db.r5.large", + "db.r5.12xlarge", + "db.r6g.xlarge", + "db.r6g.large", + "db.r6g.16xlarge", "db.r6g.8xlarge", - "db.r6g.4xlarge", "db.r5.16xlarge", - "db.r5.12xlarge", - "db.r6g.12xlarge", + "db.r5.8xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, "us-east-1": { "enum": [ + "db.r5.large", + "db.r6g.large", + "db.r4.8xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.4xlarge", - "db.r4.16xlarge", + "db.r5.12xlarge", + "db.r4.xlarge", "db.t4g.medium", - "db.r6g.large", - "db.t3.medium", - "db.r5.8xlarge", "db.r6g.12xlarge", "db.r6g.16xlarge", - "db.r4.8xlarge", - "db.r4.large", - "db.r5.12xlarge", - "db.r4.xlarge", - "db.r5.large", "db.r6g.8xlarge", - "db.r5.24xlarge", + "db.r4.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", "db.r4.2xlarge", - "db.r5.16xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "us-east-2": { "enum": [ + "db.r5.large", + "db.r6g.large", + "db.r4.8xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.4xlarge", - "db.r4.16xlarge", + "db.r5.12xlarge", + "db.r4.xlarge", "db.t4g.medium", - "db.r6g.large", - "db.t3.medium", - "db.r5.8xlarge", "db.r6g.12xlarge", "db.r6g.16xlarge", - "db.r4.8xlarge", + "db.r6g.8xlarge", + "db.r4.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r4.2xlarge", + "db.r6g.xlarge", + "db.r5.8xlarge", "db.r4.large", - "db.r5.12xlarge", - "db.r4.xlarge", + "db.r5.24xlarge", + "db.t3.medium" + ] + }, + "us-gov-east-1": { + "enum": [ + "db.r5.xlarge", "db.r5.large", + "db.r5.12xlarge", + "db.r6g.16xlarge", + "db.r6g.xlarge", + "db.r6g.large", "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.r4.2xlarge", "db.r5.16xlarge", - "db.r4.4xlarge", + "db.r5.8xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", + "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r5.24xlarge", + "db.t3.medium", + "db.r6g.12xlarge" ] }, "us-gov-west-1": { "enum": [ - "db.r5.2xlarge", - "db.r6g.2xlarge", "db.r5.xlarge", - "db.r5.8xlarge", - "db.t3.medium", - "db.r6g.8xlarge", - "db.r6g.4xlarge", + "db.r5.large", + "db.r6g.16xlarge", + "db.r6g.xlarge", "db.r5.12xlarge", + "db.r6g.large", + "db.r6g.8xlarge", + "db.r5.8xlarge", "db.r5.16xlarge", - "db.r6g.12xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.2xlarge", + "db.t4g.medium", "db.r5.4xlarge", - "db.r6g.xlarge", - "db.r6g.16xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.large" + "db.t3.medium", + "db.r6g.12xlarge" ] }, "us-west-2": { "enum": [ + "db.r5.large", + "db.r6g.large", + "db.r4.8xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.2xlarge", - "db.r6g.4xlarge", - "db.r4.16xlarge", + "db.r5.12xlarge", + "db.r4.xlarge", "db.t4g.medium", - "db.r6g.large", - "db.t3.medium", - "db.r5.8xlarge", "db.r6g.12xlarge", "db.r6g.16xlarge", - "db.r4.8xlarge", - "db.r4.large", - "db.r5.12xlarge", - "db.r4.xlarge", - "db.r5.large", "db.r6g.8xlarge", - "db.r5.24xlarge", + "db.r4.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", "db.r4.2xlarge", - "db.r5.16xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.r5.24xlarge", + "db.t3.medium" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_elasticache_cachecluster/cachenodetype_enum.json b/src/cfnlint/data/schemas/extensions/aws_elasticache_cachecluster/cachenodetype_enum.json index 4bf0bca882..6e44ec0104 100644 --- a/src/cfnlint/data/schemas/extensions/aws_elasticache_cachecluster/cachenodetype_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_elasticache_cachecluster/cachenodetype_enum.json @@ -2,1494 +2,1660 @@ "_description": "Automatically updated using update_specs_from_pricing", "af-south-1": { "enum": [ - "cache.t3.micro", - "cache.m5.24xlarge", + "cache.t3.small", "cache.m5.large", - "cache.r5.4xlarge", - "cache.t3.medium", - "cache.r5.12xlarge", - "cache.r5.xlarge", - "cache.m5.xlarge", "cache.m5.4xlarge", - "cache.t3.small", + "cache.m5.2xlarge", + "cache.m5.xlarge", + "cache.t3.micro", + "cache.r5.4xlarge", "cache.r5.24xlarge", - "cache.r5.large", "cache.m5.12xlarge", - "cache.m5.2xlarge", - "cache.r5.2xlarge" + "cache.r5.12xlarge", + "cache.r5.large", + "cache.r5.2xlarge", + "cache.t3.medium", + "cache.m5.24xlarge", + "cache.r5.xlarge" ] }, "ap-east-1": { "enum": [ + "cache.m5.4xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", "cache.t3.micro", + "cache.r5.4xlarge", "cache.r6g.xlarge", - "cache.t3.medium", - "cache.m5.xlarge", + "cache.r6g.8xlarge", "cache.r5.24xlarge", - "cache.r5.xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", "cache.r5.large", - "cache.r6g.4xlarge", "cache.r5.2xlarge", + "cache.m6g.2xlarge", + "cache.r5.xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m5.xlarge", + "cache.t3.medium", + "cache.t4g.micro", "cache.m6g.4xlarge", - "cache.t4g.small", + "cache.t3.small", + "cache.r6g.4xlarge", "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m6g.8xlarge", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.r6g.12xlarge", - "cache.m6g.large", "cache.m5.12xlarge", + "cache.m6g.large", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.r6g.large", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", + "cache.m5.24xlarge", "cache.r6g.16xlarge", - "cache.t3.small", - "cache.t4g.micro" + "cache.t4g.small", + "cache.r6g.12xlarge", + "cache.m6g.8xlarge" ] }, "ap-northeast-1": { "enum": [ - "cache.t3.micro", - "cache.r6gd.16xlarge", - "cache.m4.4xlarge", - "cache.r4.16xlarge", - "cache.m1.large", + "cache.m4.large", + "cache.r6g.large", + "cache.m6g.2xlarge", + "cache.r5.xlarge", + "cache.m1.medium", + "cache.m5.large", + "cache.m1.xlarge", + "cache.m7g.large", + "cache.r4.large", + "cache.r7g.large", + "cache.r7g.16xlarge", + "cache.r7g.2xlarge", + "cache.m6g.large", + "cache.r7g.xlarge", + "cache.m7g.4xlarge", + "cache.r4.xlarge", + "cache.m7g.12xlarge", + "cache.m7g.8xlarge", + "cache.r3.xlarge", + "cache.m1.small", + "cache.m2.4xlarge", + "cache.m6g.8xlarge", + "cache.r3.large", + "cache.t1.micro", + "cache.r4.4xlarge", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r6gd.12xlarge", "cache.r6gd.2xlarge", - "cache.m3.medium", - "cache.r6g.xlarge", "cache.m3.2xlarge", + "cache.m4.xlarge", "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.m1.medium", - "cache.r4.8xlarge", + "cache.r6gd.8xlarge", + "cache.m4.4xlarge", + "cache.r3.4xlarge", + "cache.t4g.micro", + "cache.t3.small", + "cache.m1.large", + "cache.r6g.4xlarge", + "cache.c1.xlarge", + "cache.m5.12xlarge", + "cache.t4g.small", "cache.m2.2xlarge", - "cache.r4.large", + "cache.m5.4xlarge", + "cache.m4.10xlarge", + "cache.m3.large", + "cache.m6g.xlarge", + "cache.r5.4xlarge", + "cache.m2.xlarge", + "cache.m7g.2xlarge", "cache.r6gd.4xlarge", - "cache.r5.24xlarge", - "cache.r5.xlarge", - "cache.r5.large", + "cache.m6g.16xlarge", + "cache.m5.xlarge", + "cache.t2.small", + "cache.r7g.8xlarge", "cache.t2.micro", - "cache.c1.xlarge", + "cache.r6gd.16xlarge", + "cache.r4.16xlarge", + "cache.t2.medium", + "cache.m6g.12xlarge", + "cache.m5.24xlarge", "cache.m3.xlarge", - "cache.r6g.4xlarge", - "cache.m1.xlarge", - "cache.t2.small", - "cache.r4.4xlarge", + "cache.r4.8xlarge", + "cache.r6gd.xlarge", + "cache.m4.2xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.t3.micro", + "cache.r6g.xlarge", + "cache.r6g.8xlarge", + "cache.r5.24xlarge", + "cache.r5.12xlarge", + "cache.m7g.xlarge", + "cache.r5.2xlarge", + "cache.m3.medium", + "cache.t3.medium", "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", - "cache.r3.xlarge", "cache.m5.2xlarge", - "cache.t1.micro", - "cache.m5.24xlarge", + "cache.m7g.16xlarge", + "cache.r7g.12xlarge", + "cache.r6g.16xlarge", + "cache.r7g.4xlarge", + "cache.r3.8xlarge", + "cache.r6g.12xlarge" + ] + }, + "ap-northeast-2": { + "enum": [ + "cache.m5.4xlarge", "cache.m4.large", - "cache.m6g.8xlarge", - "cache.m2.xlarge", + "cache.t4g.medium", + "cache.m4.2xlarge", + "cache.m4.10xlarge", + "cache.r6g.2xlarge", "cache.m3.large", + "cache.m6g.xlarge", + "cache.r4.4xlarge", + "cache.r5.4xlarge", + "cache.r6g.xlarge", "cache.r6g.8xlarge", + "cache.r5.24xlarge", "cache.r5.12xlarge", - "cache.t4g.micro", - "cache.r3.large", + "cache.r6g.large", + "cache.t3.micro", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r5.2xlarge", "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", - "cache.r6gd.8xlarge", - "cache.r4.xlarge", - "cache.m6g.large", - "cache.r6g.12xlarge", - "cache.m5.12xlarge", - "cache.t2.medium", - "cache.m6g.12xlarge", + "cache.r5.xlarge", "cache.m6g.16xlarge", "cache.m5.large", - "cache.r6g.large", - "cache.r6gd.12xlarge", - "cache.m4.10xlarge", - "cache.m2.4xlarge", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", - "cache.r3.2xlarge", - "cache.r6g.16xlarge", - "cache.m1.small", - "cache.t3.small", - "cache.r6gd.xlarge", - "cache.r3.4xlarge", + "cache.m3.2xlarge", + "cache.m5.xlarge", "cache.m4.xlarge", - "cache.r5.2xlarge" - ] - }, - "ap-northeast-2": { - "enum": [ - "cache.t3.micro", - "cache.m4.4xlarge", - "cache.r4.16xlarge", "cache.m3.medium", - "cache.r6g.xlarge", - "cache.m3.2xlarge", + "cache.t2.small", + "cache.r4.large", "cache.r4.2xlarge", + "cache.m4.4xlarge", "cache.t3.medium", - "cache.m5.xlarge", - "cache.r4.8xlarge", - "cache.r4.large", - "cache.r5.24xlarge", - "cache.r5.xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.m3.xlarge", - "cache.r6g.4xlarge", - "cache.t2.small", - "cache.r4.4xlarge", + "cache.r3.4xlarge", + "cache.t4g.micro", "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", - "cache.r3.xlarge", + "cache.t3.small", + "cache.r6g.4xlarge", "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m4.large", - "cache.m6g.8xlarge", - "cache.m3.large", - "cache.r6g.8xlarge", - "cache.t4g.micro", - "cache.r5.12xlarge", - "cache.r3.large", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", - "cache.r6g.12xlarge", - "cache.m6g.large", - "cache.r4.xlarge", + "cache.t2.micro", "cache.m5.12xlarge", + "cache.r4.16xlarge", + "cache.m6g.large", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.m4.10xlarge", - "cache.r6g.large", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", + "cache.m5.24xlarge", "cache.r6g.16xlarge", - "cache.r3.2xlarge", - "cache.t3.small", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.r5.2xlarge" + "cache.r4.xlarge", + "cache.t4g.small", + "cache.r3.8xlarge", + "cache.r6g.12xlarge", + "cache.m3.xlarge", + "cache.r4.8xlarge", + "cache.r3.xlarge", + "cache.m6g.8xlarge", + "cache.r3.large" ] }, "ap-northeast-3": { "enum": [ + "cache.m5.4xlarge", + "cache.r4.4xlarge", + "cache.r5.4xlarge", "cache.t3.micro", - "cache.r4.16xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.r4.8xlarge", - "cache.r4.large", "cache.r5.24xlarge", + "cache.r5.12xlarge", "cache.r5.large", - "cache.t2.micro", - "cache.t2.small", - "cache.r4.4xlarge", "cache.r5.2xlarge", + "cache.r5.xlarge", + "cache.m5.large", + "cache.m5.xlarge", + "cache.t2.small", + "cache.r4.large", + "cache.r4.2xlarge", + "cache.t3.medium", + "cache.t3.small", "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.r5.12xlarge", - "cache.r4.xlarge", + "cache.t2.micro", "cache.m5.12xlarge", + "cache.r4.16xlarge", "cache.t2.medium", - "cache.m5.large", - "cache.r5.4xlarge", - "cache.m5.4xlarge", - "cache.t3.small", - "cache.r5.xlarge" + "cache.m5.24xlarge", + "cache.r4.xlarge", + "cache.r4.8xlarge" ] }, "ap-south-1": { "enum": [ - "cache.r6gd.16xlarge", + "cache.m5.4xlarge", + "cache.m4.large", + "cache.m4.2xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.m4.10xlarge", + "cache.r4.4xlarge", + "cache.m6g.xlarge", + "cache.r5.4xlarge", "cache.t3.micro", - "cache.m4.4xlarge", - "cache.r4.16xlarge", - "cache.r6gd.2xlarge", "cache.r6g.xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.r4.large", - "cache.r6gd.4xlarge", - "cache.r4.8xlarge", "cache.r5.24xlarge", - "cache.r5.xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.r6g.4xlarge", - "cache.t2.small", - "cache.r5.2xlarge", - "cache.r4.4xlarge", - "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", - "cache.r3.xlarge", - "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m6g.8xlarge", "cache.r6g.8xlarge", - "cache.t4g.micro", "cache.r5.12xlarge", - "cache.r3.large", + "cache.r6g.large", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r6gd.12xlarge", + "cache.r5.2xlarge", + "cache.r6gd.4xlarge", "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", + "cache.r5.xlarge", + "cache.r6gd.2xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m5.xlarge", + "cache.m4.xlarge", + "cache.t2.small", + "cache.r4.large", + "cache.r4.2xlarge", "cache.r6gd.8xlarge", - "cache.r6g.12xlarge", - "cache.r4.xlarge", - "cache.m6g.large", + "cache.m4.4xlarge", + "cache.t3.medium", + "cache.r3.4xlarge", + "cache.t4g.micro", + "cache.m6g.4xlarge", + "cache.t3.small", + "cache.r6g.4xlarge", + "cache.m5.2xlarge", + "cache.t2.micro", + "cache.r6gd.16xlarge", + "cache.r4.16xlarge", + "cache.r6gd.xlarge", "cache.m5.12xlarge", + "cache.m6g.large", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.r6gd.12xlarge", - "cache.m4.10xlarge", - "cache.r6g.large", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.r3.2xlarge", "cache.r6g.16xlarge", - "cache.m5.4xlarge", - "cache.t3.small", - "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.m4.large" + "cache.m5.24xlarge", + "cache.r4.xlarge", + "cache.t4g.small", + "cache.r3.8xlarge", + "cache.r6g.12xlarge", + "cache.r3.xlarge", + "cache.r4.8xlarge", + "cache.m6g.8xlarge", + "cache.r3.large" ] }, "ap-south-2": { "enum": [ + "cache.m5.4xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", "cache.t3.micro", + "cache.r5.4xlarge", "cache.r6g.xlarge", - "cache.t3.medium", - "cache.m5.xlarge", "cache.r5.24xlarge", - "cache.r5.xlarge", + "cache.r6g.8xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", "cache.r5.large", - "cache.r6g.4xlarge", "cache.r5.2xlarge", + "cache.m6g.2xlarge", + "cache.r5.xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m5.xlarge", + "cache.t3.medium", + "cache.t4g.micro", + "cache.t3.small", "cache.m6g.4xlarge", - "cache.t4g.small", + "cache.r6g.4xlarge", "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m6g.8xlarge", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.r6g.12xlarge", - "cache.m6g.large", "cache.m5.12xlarge", + "cache.m6g.large", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.r6g.large", - "cache.m5.large", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", "cache.r6g.16xlarge", - "cache.t3.small", - "cache.t4g.micro" + "cache.m5.24xlarge", + "cache.t4g.small", + "cache.r6g.12xlarge", + "cache.m6g.8xlarge" ] }, "ap-southeast-1": { "enum": [ - "cache.t3.micro", - "cache.r6gd.16xlarge", - "cache.m4.4xlarge", - "cache.r4.16xlarge", - "cache.m1.large", - "cache.r6gd.2xlarge", - "cache.m3.medium", + "cache.m5.4xlarge", + "cache.m4.large", + "cache.m2.xlarge", + "cache.t4g.medium", + "cache.m4.2xlarge", + "cache.m4.10xlarge", + "cache.r4.4xlarge", + "cache.m3.large", + "cache.t1.micro", + "cache.r5.4xlarge", + "cache.m6g.xlarge", "cache.r6g.xlarge", - "cache.m3.2xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.m1.medium", - "cache.m2.2xlarge", - "cache.r4.8xlarge", - "cache.r4.large", - "cache.r6gd.4xlarge", + "cache.r6g.8xlarge", "cache.r5.24xlarge", - "cache.r5.xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", + "cache.t3.micro", + "cache.r3.2xlarge", "cache.r5.large", - "cache.t2.micro", - "cache.c1.xlarge", - "cache.m3.xlarge", - "cache.r6g.4xlarge", + "cache.r6gd.12xlarge", + "cache.r5.2xlarge", + "cache.m6g.2xlarge", + "cache.r6gd.2xlarge", + "cache.r5.xlarge", + "cache.r6gd.4xlarge", + "cache.m1.medium", + "cache.m6g.16xlarge", + "cache.m5.large", "cache.m1.xlarge", + "cache.m3.2xlarge", + "cache.m5.xlarge", + "cache.m4.xlarge", "cache.t2.small", - "cache.r4.4xlarge", - "cache.r5.2xlarge", + "cache.m3.medium", + "cache.m6g.8xlarge", + "cache.r4.large", + "cache.r4.2xlarge", + "cache.r6gd.8xlarge", + "cache.m4.4xlarge", + "cache.t3.medium", + "cache.r3.4xlarge", + "cache.t4g.micro", "cache.m6g.4xlarge", + "cache.m1.large", + "cache.r6g.4xlarge", + "cache.m5.2xlarge", + "cache.c1.xlarge", + "cache.t3.small", + "cache.t2.micro", + "cache.m5.12xlarge", + "cache.r4.16xlarge", + "cache.r6gd.16xlarge", + "cache.m6g.large", + "cache.t2.medium", + "cache.m6g.12xlarge", + "cache.m5.24xlarge", + "cache.r6g.16xlarge", + "cache.r4.xlarge", "cache.t4g.small", "cache.r3.8xlarge", + "cache.r6g.12xlarge", + "cache.m3.xlarge", "cache.r3.xlarge", - "cache.m5.2xlarge", - "cache.t1.micro", - "cache.m5.24xlarge", - "cache.m6g.8xlarge", - "cache.m3.large", - "cache.m2.xlarge", - "cache.r6g.8xlarge", - "cache.t4g.micro", - "cache.r5.12xlarge", - "cache.r3.large", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", - "cache.r6gd.8xlarge", - "cache.r6g.12xlarge", - "cache.m6g.large", - "cache.r4.xlarge", - "cache.m5.12xlarge", - "cache.t2.medium", - "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m4.10xlarge", - "cache.r6g.large", - "cache.r6gd.12xlarge", - "cache.m5.large", - "cache.r5.4xlarge", + "cache.r4.8xlarge", + "cache.m1.small", "cache.m2.4xlarge", "cache.r6g.2xlarge", - "cache.r3.2xlarge", - "cache.m5.4xlarge", - "cache.r6g.16xlarge", - "cache.m1.small", - "cache.t3.small", "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.m4.large" + "cache.r3.large", + "cache.m2.2xlarge" ] }, "ap-southeast-2": { "enum": [ - "cache.t3.micro", - "cache.r6gd.16xlarge", - "cache.m4.4xlarge", - "cache.m1.large", - "cache.r4.16xlarge", - "cache.r6gd.2xlarge", - "cache.m3.medium", - "cache.r6g.xlarge", - "cache.m3.2xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.m1.medium", - "cache.r4.8xlarge", - "cache.m2.2xlarge", - "cache.r4.large", - "cache.r6gd.4xlarge", - "cache.r5.24xlarge", + "cache.m4.large", + "cache.r6g.large", + "cache.m6g.2xlarge", "cache.r5.xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.c1.xlarge", - "cache.m3.xlarge", - "cache.r6g.4xlarge", + "cache.m1.medium", + "cache.m5.large", "cache.m1.xlarge", - "cache.t2.small", - "cache.r4.4xlarge", - "cache.r5.2xlarge", - "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", + "cache.m7g.large", + "cache.r4.large", + "cache.r7g.16xlarge", + "cache.r7g.large", + "cache.r7g.2xlarge", + "cache.r7g.xlarge", + "cache.m6g.large", + "cache.m7g.4xlarge", + "cache.r4.xlarge", + "cache.m7g.12xlarge", + "cache.m7g.8xlarge", "cache.r3.xlarge", - "cache.m5.2xlarge", - "cache.t1.micro", - "cache.m5.24xlarge", + "cache.m1.small", + "cache.m2.4xlarge", "cache.m6g.8xlarge", - "cache.m2.xlarge", - "cache.m3.large", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.t4g.micro", "cache.r3.large", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", + "cache.t1.micro", + "cache.r4.4xlarge", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r6gd.12xlarge", + "cache.r6gd.2xlarge", + "cache.m3.2xlarge", + "cache.m4.xlarge", + "cache.r4.2xlarge", "cache.r6gd.8xlarge", - "cache.r6g.12xlarge", - "cache.m6g.large", - "cache.r4.xlarge", + "cache.m4.4xlarge", + "cache.r3.4xlarge", + "cache.t4g.micro", + "cache.m1.large", + "cache.t3.small", + "cache.r6g.4xlarge", + "cache.c1.xlarge", "cache.m5.12xlarge", - "cache.t2.medium", - "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", + "cache.t4g.small", + "cache.m2.2xlarge", + "cache.m5.4xlarge", "cache.m4.10xlarge", - "cache.r6g.large", - "cache.r6gd.12xlarge", + "cache.m3.large", + "cache.m6g.xlarge", "cache.r5.4xlarge", - "cache.m2.4xlarge", + "cache.m2.xlarge", + "cache.m7g.2xlarge", + "cache.r6gd.4xlarge", + "cache.m6g.16xlarge", + "cache.m5.xlarge", + "cache.t2.small", + "cache.r7g.8xlarge", + "cache.t2.micro", + "cache.r6gd.16xlarge", + "cache.r4.16xlarge", + "cache.t2.medium", + "cache.m6g.12xlarge", + "cache.m5.24xlarge", + "cache.m3.xlarge", + "cache.r4.8xlarge", + "cache.r6gd.xlarge", + "cache.t4g.medium", + "cache.m4.2xlarge", "cache.r6g.2xlarge", - "cache.m5.4xlarge", + "cache.t3.micro", + "cache.r6g.xlarge", + "cache.r5.24xlarge", + "cache.r6g.8xlarge", + "cache.r5.12xlarge", + "cache.m7g.xlarge", + "cache.r5.2xlarge", + "cache.m3.medium", + "cache.t3.medium", + "cache.m6g.4xlarge", + "cache.m5.2xlarge", + "cache.m7g.16xlarge", + "cache.r7g.12xlarge", "cache.r6g.16xlarge", - "cache.r3.2xlarge", - "cache.m1.small", - "cache.t3.small", - "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.m4.large" + "cache.r7g.4xlarge", + "cache.r3.8xlarge", + "cache.r6g.12xlarge" ] }, "ap-southeast-3": { "enum": [ - "cache.t3.micro", - "cache.m5.24xlarge", - "cache.m5.large", - "cache.r5.4xlarge", - "cache.t3.medium", - "cache.r5.12xlarge", + "cache.t3.small", "cache.m5.4xlarge", - "cache.r5.xlarge", + "cache.m5.large", + "cache.m5.2xlarge", "cache.m5.xlarge", - "cache.t3.small", + "cache.r5.4xlarge", + "cache.t3.micro", "cache.r5.24xlarge", - "cache.r5.large", "cache.m5.12xlarge", - "cache.m5.2xlarge", - "cache.r5.2xlarge" + "cache.r5.12xlarge", + "cache.r5.large", + "cache.r5.2xlarge", + "cache.t3.medium", + "cache.m5.24xlarge", + "cache.r5.xlarge" ] }, "ap-southeast-4": { "enum": [ - "cache.t3.micro", - "cache.m5.24xlarge", - "cache.m5.large", - "cache.r5.2xlarge", - "cache.r5.4xlarge", - "cache.t3.medium", - "cache.m5.xlarge", + "cache.t3.small", "cache.m5.4xlarge", - "cache.r5.12xlarge", + "cache.m5.large", "cache.m5.2xlarge", - "cache.t3.small", + "cache.m5.24xlarge", + "cache.m5.xlarge", + "cache.t3.micro", + "cache.r5.4xlarge", "cache.r5.24xlarge", - "cache.r5.large", "cache.m5.12xlarge", + "cache.r5.12xlarge", + "cache.r5.large", + "cache.r5.2xlarge", + "cache.t3.medium", "cache.r5.xlarge" ] }, "ca-central-1": { "enum": [ + "cache.m5.4xlarge", + "cache.m4.large", + "cache.m4.2xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.m4.10xlarge", + "cache.r4.4xlarge", + "cache.m6g.xlarge", "cache.t3.micro", - "cache.r6gd.16xlarge", - "cache.m4.4xlarge", - "cache.r4.16xlarge", - "cache.r6gd.2xlarge", + "cache.r5.4xlarge", "cache.r6g.xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.r4.8xlarge", - "cache.r4.large", - "cache.r6gd.4xlarge", + "cache.r6g.8xlarge", "cache.r5.24xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", "cache.r5.large", - "cache.t2.micro", - "cache.r6g.4xlarge", - "cache.t2.small", "cache.r5.2xlarge", - "cache.r4.4xlarge", - "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m4.large", - "cache.m6g.8xlarge", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.t4g.micro", + "cache.r6gd.12xlarge", "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", + "cache.r6gd.2xlarge", + "cache.r5.xlarge", + "cache.r6gd.4xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m5.xlarge", + "cache.m4.xlarge", + "cache.t2.small", + "cache.m6g.8xlarge", + "cache.r4.large", + "cache.r4.2xlarge", "cache.r6gd.8xlarge", - "cache.r4.xlarge", - "cache.m6g.large", - "cache.r6g.12xlarge", + "cache.m4.4xlarge", + "cache.t3.medium", + "cache.t4g.micro", + "cache.m6g.4xlarge", + "cache.t3.small", + "cache.r6g.4xlarge", + "cache.m5.2xlarge", + "cache.t2.micro", + "cache.r6gd.16xlarge", + "cache.r4.16xlarge", "cache.m5.12xlarge", + "cache.m6g.large", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.r6g.large", - "cache.m4.10xlarge", - "cache.r6gd.12xlarge", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", + "cache.m5.24xlarge", "cache.r6g.16xlarge", - "cache.t3.small", - "cache.r6gd.xlarge", - "cache.m4.xlarge", - "cache.r5.xlarge" + "cache.r4.xlarge", + "cache.t4g.small", + "cache.r6g.12xlarge", + "cache.r4.8xlarge", + "cache.r6gd.xlarge" ] }, - "cn-north-1": { + "ca-west-1": { "enum": [ + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", "cache.t3.micro", - "cache.m4.4xlarge", - "cache.r4.16xlarge", - "cache.m3.medium", "cache.r6g.xlarge", - "cache.m3.2xlarge", - "cache.r4.2xlarge", + "cache.r6g.8xlarge", + "cache.r6g.large", + "cache.m6g.2xlarge", + "cache.m6g.16xlarge", "cache.t3.medium", - "cache.r4.large", - "cache.r4.8xlarge", - "cache.r5.24xlarge", - "cache.r5.xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.m3.xlarge", - "cache.r6g.4xlarge", - "cache.t2.small", - "cache.r4.4xlarge", + "cache.t4g.micro", "cache.m6g.4xlarge", + "cache.t3.small", + "cache.r6g.4xlarge", + "cache.m6g.large", + "cache.m6g.12xlarge", + "cache.r6g.16xlarge", "cache.t4g.small", - "cache.r3.8xlarge", - "cache.r3.xlarge", + "cache.r6g.12xlarge", + "cache.m6g.8xlarge" + ] + }, + "cn-north-1": { + "enum": [ "cache.m4.large", - "cache.m6g.8xlarge", + "cache.m4.2xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.m4.10xlarge", "cache.m3.large", + "cache.m6g.xlarge", + "cache.r5.4xlarge", + "cache.t3.micro", + "cache.r6g.xlarge", "cache.r6g.8xlarge", + "cache.r5.24xlarge", "cache.r5.12xlarge", - "cache.t4g.micro", - "cache.r3.large", + "cache.r6g.large", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r5.2xlarge", "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", - "cache.r6g.12xlarge", + "cache.r5.xlarge", + "cache.m6g.16xlarge", + "cache.m3.2xlarge", + "cache.m4.xlarge", + "cache.m3.medium", + "cache.t2.small", + "cache.r4.large", + "cache.r4.2xlarge", + "cache.m4.4xlarge", + "cache.t3.medium", + "cache.r3.4xlarge", + "cache.t4g.micro", + "cache.t3.small", + "cache.m6g.4xlarge", + "cache.r6g.4xlarge", + "cache.r4.4xlarge", + "cache.t2.micro", + "cache.r4.16xlarge", "cache.m6g.large", - "cache.r4.xlarge", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.r6g.large", - "cache.m4.10xlarge", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.r3.2xlarge", "cache.r6g.16xlarge", + "cache.r4.xlarge", + "cache.t4g.small", + "cache.r3.8xlarge", + "cache.r6g.12xlarge", + "cache.m3.xlarge", + "cache.r4.8xlarge", + "cache.r3.xlarge", "cache.m1.small", - "cache.t3.small", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.r5.2xlarge" + "cache.m6g.8xlarge", + "cache.r3.large" ] }, "cn-northwest-1": { "enum": [ + "cache.m4.large", + "cache.t4g.medium", + "cache.m4.2xlarge", + "cache.m4.10xlarge", + "cache.r4.4xlarge", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", + "cache.r5.4xlarge", "cache.t3.micro", - "cache.m4.4xlarge", - "cache.r4.16xlarge", "cache.r6g.xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.r4.8xlarge", - "cache.r4.large", "cache.r5.24xlarge", - "cache.r5.xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.r6g.4xlarge", - "cache.t2.small", - "cache.r4.4xlarge", - "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.m4.large", - "cache.m6g.8xlarge", "cache.r6g.8xlarge", "cache.r5.12xlarge", - "cache.t4g.micro", + "cache.r6g.large", + "cache.r5.large", + "cache.r5.2xlarge", "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", - "cache.r4.xlarge", + "cache.r5.xlarge", + "cache.m6g.16xlarge", + "cache.m4.xlarge", + "cache.t2.small", + "cache.r4.large", + "cache.r4.2xlarge", + "cache.m4.4xlarge", + "cache.t3.medium", + "cache.t4g.micro", + "cache.t3.small", + "cache.m6g.4xlarge", + "cache.r6g.4xlarge", + "cache.t2.micro", + "cache.r4.16xlarge", "cache.m6g.large", - "cache.r6g.12xlarge", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m4.10xlarge", - "cache.r6g.large", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", "cache.r6g.16xlarge", - "cache.t3.small", - "cache.m4.xlarge", - "cache.r5.2xlarge" + "cache.r4.xlarge", + "cache.t4g.small", + "cache.r6g.12xlarge", + "cache.r4.8xlarge", + "cache.m6g.8xlarge" ] }, "eu-central-1": { "enum": [ - "cache.r6gd.16xlarge", + "cache.m5.4xlarge", + "cache.m4.large", + "cache.t4g.medium", + "cache.m4.2xlarge", + "cache.r6g.2xlarge", + "cache.r4.4xlarge", + "cache.m3.large", + "cache.m6g.xlarge", + "cache.r5.4xlarge", + "cache.m4.10xlarge", + "cache.r6g.xlarge", + "cache.r5.24xlarge", + "cache.m7g.2xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", + "cache.m7g.xlarge", "cache.t3.micro", - "cache.m4.4xlarge", - "cache.r4.16xlarge", + "cache.r5.large", + "cache.r6gd.12xlarge", + "cache.r5.2xlarge", + "cache.r3.2xlarge", + "cache.m6g.2xlarge", + "cache.r6gd.4xlarge", + "cache.r5.xlarge", "cache.r6gd.2xlarge", - "cache.m3.medium", - "cache.r6g.xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", "cache.m3.2xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", + "cache.m7g.large", "cache.m5.xlarge", - "cache.r4.8xlarge", - "cache.r4.large", - "cache.r6gd.4xlarge", - "cache.r5.24xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.m3.xlarge", - "cache.r6g.4xlarge", + "cache.m4.xlarge", + "cache.m3.medium", + "cache.m6g.8xlarge", "cache.t2.small", - "cache.r4.4xlarge", - "cache.r5.2xlarge", + "cache.r4.large", + "cache.r7g.8xlarge", + "cache.r4.2xlarge", + "cache.r7g.large", + "cache.r7g.16xlarge", + "cache.r6gd.8xlarge", + "cache.m4.4xlarge", + "cache.t3.medium", + "cache.r7g.2xlarge", + "cache.r3.4xlarge", + "cache.t4g.micro", "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", - "cache.r3.xlarge", + "cache.t3.small", + "cache.r6g.4xlarge", "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m4.large", - "cache.m6g.8xlarge", - "cache.m3.large", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.t4g.micro", - "cache.r3.large", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", - "cache.r6gd.8xlarge", - "cache.r6g.12xlarge", - "cache.m6g.large", - "cache.r4.xlarge", + "cache.t2.micro", "cache.m5.12xlarge", + "cache.r4.16xlarge", + "cache.r6gd.16xlarge", + "cache.r7g.xlarge", + "cache.m6g.large", + "cache.m7g.16xlarge", + "cache.r7g.12xlarge", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.r6gd.12xlarge", - "cache.r6g.large", - "cache.m4.10xlarge", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", "cache.r6g.16xlarge", - "cache.r3.2xlarge", - "cache.t3.small", - "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.r5.xlarge" - ] - }, - "eu-central-2": { - "enum": [ - "cache.t3.micro", + "cache.r7g.4xlarge", + "cache.m7g.4xlarge", "cache.m5.24xlarge", + "cache.r4.xlarge", + "cache.m7g.12xlarge", + "cache.t4g.small", + "cache.r6g.8xlarge", + "cache.r3.8xlarge", + "cache.r6g.12xlarge", + "cache.m3.xlarge", + "cache.m7g.8xlarge", + "cache.r4.8xlarge", + "cache.r3.xlarge", + "cache.r6gd.xlarge", + "cache.r3.large" + ] + }, + "eu-central-2": { + "enum": [ "cache.m5.large", - "cache.r5.4xlarge", - "cache.t3.medium", - "cache.m5.xlarge", "cache.m5.4xlarge", + "cache.t3.small", "cache.m5.2xlarge", - "cache.r5.12xlarge", - "cache.r5.xlarge", + "cache.m5.xlarge", + "cache.t3.micro", + "cache.r5.4xlarge", "cache.r5.24xlarge", - "cache.t3.small", - "cache.r5.large", "cache.m5.12xlarge", - "cache.r5.2xlarge" + "cache.r5.12xlarge", + "cache.r5.large", + "cache.r5.2xlarge", + "cache.t3.medium", + "cache.m5.24xlarge", + "cache.r5.xlarge" ] }, "eu-north-1": { "enum": [ + "cache.m5.4xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", + "cache.r5.4xlarge", "cache.t3.micro", - "cache.r6gd.16xlarge", - "cache.r6gd.2xlarge", "cache.r6g.xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.r6gd.4xlarge", - "cache.r5.24xlarge", - "cache.r5.xlarge", - "cache.r5.large", - "cache.r6g.4xlarge", - "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m6g.8xlarge", "cache.r6g.8xlarge", + "cache.r5.24xlarge", "cache.r5.12xlarge", - "cache.t4g.micro", + "cache.r6g.large", + "cache.r5.large", + "cache.r5.2xlarge", + "cache.r6gd.12xlarge", "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.r6gd.8xlarge", - "cache.r6g.12xlarge", - "cache.m6g.large", - "cache.m5.12xlarge", - "cache.m6g.12xlarge", + "cache.r6gd.4xlarge", + "cache.r5.xlarge", + "cache.r6gd.2xlarge", "cache.m6g.16xlarge", - "cache.r6g.large", "cache.m5.large", - "cache.r6gd.12xlarge", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", - "cache.r6g.16xlarge", + "cache.m5.xlarge", + "cache.r6gd.8xlarge", + "cache.t3.medium", + "cache.t4g.micro", "cache.t3.small", + "cache.m6g.4xlarge", + "cache.r6g.4xlarge", + "cache.m5.2xlarge", + "cache.r6gd.16xlarge", + "cache.m5.12xlarge", "cache.r6gd.xlarge", - "cache.r5.2xlarge" + "cache.m6g.large", + "cache.m6g.12xlarge", + "cache.r6g.16xlarge", + "cache.m5.24xlarge", + "cache.t4g.small", + "cache.r6g.12xlarge", + "cache.m6g.8xlarge" ] }, "eu-south-1": { "enum": [ + "cache.m5.4xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", "cache.t3.micro", + "cache.r5.4xlarge", "cache.r6g.xlarge", - "cache.t3.medium", - "cache.m5.xlarge", + "cache.r6g.8xlarge", "cache.r5.24xlarge", - "cache.r5.xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", "cache.r5.large", - "cache.r6g.4xlarge", + "cache.r5.2xlarge", + "cache.m6g.2xlarge", + "cache.r5.xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m5.xlarge", + "cache.t3.medium", + "cache.t4g.micro", + "cache.t3.small", "cache.m6g.4xlarge", - "cache.t4g.small", + "cache.r6g.4xlarge", "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m6g.8xlarge", - "cache.r6g.8xlarge", - "cache.t4g.micro", - "cache.r5.12xlarge", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.r6g.12xlarge", - "cache.m6g.large", "cache.m5.12xlarge", + "cache.m6g.large", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.r6g.large", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", "cache.r6g.16xlarge", - "cache.t3.small", - "cache.r5.2xlarge" + "cache.m5.24xlarge", + "cache.t4g.small", + "cache.r6g.12xlarge", + "cache.m6g.8xlarge" ] }, "eu-south-2": { "enum": [ - "cache.t3.micro", - "cache.m5.24xlarge", - "cache.m5.large", "cache.r5.2xlarge", - "cache.r5.4xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.r5.12xlarge", + "cache.m5.large", "cache.m5.4xlarge", - "cache.r5.24xlarge", "cache.t3.small", - "cache.r5.large", - "cache.m5.12xlarge", "cache.m5.2xlarge", + "cache.m5.xlarge", + "cache.t3.micro", + "cache.r5.4xlarge", + "cache.r5.24xlarge", + "cache.m5.12xlarge", + "cache.r5.12xlarge", + "cache.r5.large", + "cache.m5.24xlarge", + "cache.t3.medium", "cache.r5.xlarge" ] }, "eu-west-1": { "enum": [ - "cache.t3.micro", - "cache.r6gd.16xlarge", - "cache.m4.4xlarge", - "cache.m1.large", - "cache.r4.16xlarge", + "cache.m4.large", + "cache.r6g.large", + "cache.m6g.2xlarge", + "cache.r5.xlarge", + "cache.m1.medium", + "cache.m5.large", + "cache.m1.xlarge", + "cache.m7g.large", + "cache.r4.large", + "cache.r7g.large", + "cache.r7g.16xlarge", + "cache.r7g.2xlarge", + "cache.m6g.large", + "cache.r7g.xlarge", + "cache.m7g.4xlarge", + "cache.r4.xlarge", + "cache.m7g.12xlarge", + "cache.m7g.8xlarge", + "cache.r3.xlarge", + "cache.m1.small", + "cache.m2.4xlarge", + "cache.m6g.8xlarge", + "cache.r3.large", + "cache.t1.micro", + "cache.r4.4xlarge", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r6gd.12xlarge", "cache.r6gd.2xlarge", - "cache.m3.medium", - "cache.r6g.xlarge", "cache.m3.2xlarge", + "cache.m4.xlarge", "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.m1.medium", + "cache.r6gd.8xlarge", + "cache.m4.4xlarge", + "cache.r3.4xlarge", + "cache.m1.large", + "cache.t3.small", + "cache.t4g.micro", + "cache.r6g.4xlarge", + "cache.c1.xlarge", + "cache.m5.12xlarge", + "cache.c7gn.large", + "cache.t4g.small", "cache.m2.2xlarge", + "cache.m5.4xlarge", + "cache.m4.10xlarge", + "cache.m3.large", + "cache.m6g.xlarge", + "cache.r5.4xlarge", + "cache.m2.xlarge", + "cache.m7g.2xlarge", "cache.r6gd.4xlarge", - "cache.r4.large", - "cache.r4.8xlarge", - "cache.r5.24xlarge", - "cache.r5.large", + "cache.m6g.16xlarge", + "cache.m5.xlarge", + "cache.t2.small", + "cache.r7g.8xlarge", "cache.t2.micro", - "cache.c1.xlarge", + "cache.r6gd.16xlarge", + "cache.r4.16xlarge", + "cache.t2.medium", + "cache.m6g.12xlarge", + "cache.m5.24xlarge", "cache.m3.xlarge", - "cache.r6g.4xlarge", - "cache.m1.xlarge", - "cache.t2.small", + "cache.r4.8xlarge", + "cache.r6gd.xlarge", + "cache.c7gn.xlarge", + "cache.m4.2xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.t3.micro", + "cache.r6g.xlarge", + "cache.r5.24xlarge", + "cache.r6g.8xlarge", + "cache.r5.12xlarge", + "cache.m7g.xlarge", "cache.r5.2xlarge", - "cache.r4.4xlarge", + "cache.m3.medium", + "cache.t3.medium", "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", - "cache.r3.xlarge", "cache.m5.2xlarge", - "cache.t1.micro", - "cache.m5.24xlarge", + "cache.r7g.12xlarge", + "cache.m7g.16xlarge", + "cache.r6g.16xlarge", + "cache.r7g.4xlarge", + "cache.r3.8xlarge", + "cache.r6g.12xlarge" + ] + }, + "eu-west-2": { + "enum": [ + "cache.m5.4xlarge", "cache.m4.large", - "cache.m6g.8xlarge", - "cache.m2.xlarge", - "cache.m3.large", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.t4g.micro", - "cache.r3.large", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", "cache.t4g.medium", "cache.m4.2xlarge", - "cache.r6gd.8xlarge", - "cache.r4.xlarge", - "cache.m6g.large", - "cache.r6g.12xlarge", - "cache.m5.12xlarge", - "cache.t2.medium", - "cache.m6g.12xlarge", - "cache.m6g.16xlarge", "cache.m4.10xlarge", - "cache.r6g.large", - "cache.m5.large", - "cache.r6gd.12xlarge", - "cache.m2.4xlarge", - "cache.r5.4xlarge", + "cache.r4.4xlarge", "cache.r6g.2xlarge", - "cache.r3.2xlarge", - "cache.r6g.16xlarge", - "cache.m5.4xlarge", - "cache.m1.small", - "cache.t3.small", - "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.r5.xlarge" - ] - }, - "eu-west-2": { - "enum": [ + "cache.m6g.xlarge", + "cache.r5.4xlarge", "cache.t3.micro", - "cache.m4.4xlarge", - "cache.r4.16xlarge", "cache.r6g.xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.r4.8xlarge", - "cache.r4.large", + "cache.r6g.8xlarge", "cache.r5.24xlarge", - "cache.r5.xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", "cache.r5.large", - "cache.t2.micro", - "cache.r6g.4xlarge", + "cache.r5.2xlarge", + "cache.m6g.2xlarge", + "cache.r5.xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m5.xlarge", + "cache.m4.xlarge", "cache.t2.small", - "cache.r4.4xlarge", + "cache.r4.large", + "cache.r4.2xlarge", + "cache.r6gd.8xlarge", + "cache.m4.4xlarge", + "cache.t3.medium", + "cache.t4g.micro", + "cache.t3.small", "cache.m6g.4xlarge", - "cache.t4g.small", + "cache.r6g.4xlarge", "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m4.large", - "cache.m6g.8xlarge", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.t4g.micro", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", - "cache.r6gd.8xlarge", - "cache.r6g.12xlarge", - "cache.m6g.large", - "cache.r4.xlarge", + "cache.t2.micro", "cache.m5.12xlarge", + "cache.r4.16xlarge", + "cache.m6g.large", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.r6g.large", - "cache.m5.large", - "cache.m4.10xlarge", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", + "cache.m5.24xlarge", "cache.r6g.16xlarge", - "cache.t3.small", - "cache.m4.xlarge", - "cache.r5.2xlarge" + "cache.r4.xlarge", + "cache.t4g.small", + "cache.r6g.12xlarge", + "cache.r4.8xlarge", + "cache.m6g.8xlarge" ] }, "eu-west-3": { "enum": [ - "cache.r6gd.16xlarge", + "cache.m5.4xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.r4.4xlarge", + "cache.m6g.xlarge", + "cache.r5.4xlarge", "cache.t3.micro", - "cache.r4.16xlarge", - "cache.r6gd.2xlarge", "cache.r6g.xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.r4.large", - "cache.r4.8xlarge", - "cache.r6gd.4xlarge", "cache.r5.24xlarge", - "cache.r5.xlarge", + "cache.r6g.8xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", "cache.r5.large", - "cache.t2.micro", - "cache.r6g.4xlarge", - "cache.t2.small", "cache.r5.2xlarge", - "cache.r4.4xlarge", + "cache.r6gd.12xlarge", + "cache.m6g.2xlarge", + "cache.r6gd.2xlarge", + "cache.r5.xlarge", + "cache.r6gd.4xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m5.xlarge", + "cache.t2.small", + "cache.r4.large", + "cache.r4.2xlarge", + "cache.r6gd.8xlarge", + "cache.t3.medium", + "cache.t4g.micro", "cache.m6g.4xlarge", - "cache.t4g.small", + "cache.t3.small", + "cache.r6g.4xlarge", "cache.m5.2xlarge", + "cache.t2.micro", + "cache.m5.12xlarge", + "cache.r6gd.16xlarge", + "cache.r6gd.xlarge", + "cache.r4.16xlarge", + "cache.m6g.large", + "cache.t2.medium", + "cache.m6g.12xlarge", + "cache.r6g.16xlarge", "cache.m5.24xlarge", - "cache.m6g.8xlarge", + "cache.r4.xlarge", + "cache.t4g.small", + "cache.r6g.12xlarge", + "cache.r4.8xlarge", + "cache.m6g.8xlarge" + ] + }, + "il-central-1": { + "enum": [ + "cache.m5.4xlarge", + "cache.t4g.medium", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", + "cache.t3.micro", + "cache.r5.4xlarge", + "cache.r6g.xlarge", + "cache.r5.24xlarge", "cache.r6g.8xlarge", "cache.r5.12xlarge", + "cache.r6g.large", + "cache.r5.large", + "cache.r5.2xlarge", "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.r6gd.8xlarge", - "cache.r6g.12xlarge", - "cache.r4.xlarge", - "cache.m6g.large", - "cache.m5.12xlarge", - "cache.t2.medium", - "cache.m6g.12xlarge", + "cache.r5.xlarge", "cache.m6g.16xlarge", - "cache.r6g.large", "cache.m5.large", - "cache.r6gd.12xlarge", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", - "cache.r6g.16xlarge", + "cache.m5.xlarge", + "cache.t3.medium", + "cache.t4g.micro", "cache.t3.small", - "cache.r6gd.xlarge", - "cache.t4g.micro" + "cache.m6g.4xlarge", + "cache.r6g.4xlarge", + "cache.m5.2xlarge", + "cache.m5.12xlarge", + "cache.m6g.large", + "cache.m6g.12xlarge", + "cache.m5.24xlarge", + "cache.r6g.16xlarge", + "cache.t4g.small", + "cache.r6g.12xlarge", + "cache.m6g.8xlarge" ] }, "me-central-1": { "enum": [ - "cache.t3.micro", - "cache.m5.24xlarge", "cache.m5.large", - "cache.r5.2xlarge", - "cache.r5.4xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.r5.12xlarge", - "cache.m5.2xlarge", + "cache.t3.small", "cache.m5.4xlarge", + "cache.m5.2xlarge", + "cache.m5.xlarge", + "cache.t3.micro", + "cache.r5.4xlarge", "cache.r5.24xlarge", - "cache.t3.small", - "cache.r5.large", "cache.m5.12xlarge", + "cache.r5.12xlarge", + "cache.r5.large", + "cache.r5.2xlarge", + "cache.t3.medium", + "cache.m5.24xlarge", "cache.r5.xlarge" ] }, "me-south-1": { "enum": [ - "cache.t3.micro", - "cache.m5.24xlarge", + "cache.t3.small", + "cache.m5.4xlarge", "cache.m5.large", - "cache.r5.2xlarge", - "cache.r5.4xlarge", - "cache.t3.medium", - "cache.r5.12xlarge", + "cache.m5.2xlarge", "cache.m5.xlarge", - "cache.m5.4xlarge", + "cache.r5.4xlarge", + "cache.t3.micro", "cache.r5.24xlarge", - "cache.t3.small", - "cache.r5.large", "cache.m5.12xlarge", - "cache.m5.2xlarge", + "cache.r5.12xlarge", + "cache.r5.large", + "cache.r5.2xlarge", + "cache.t3.medium", + "cache.m5.24xlarge", "cache.r5.xlarge" ] }, "sa-east-1": { "enum": [ - "cache.r6gd.16xlarge", + "cache.m5.4xlarge", + "cache.m4.large", + "cache.m4.2xlarge", + "cache.t4g.medium", + "cache.m4.10xlarge", + "cache.r4.4xlarge", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", "cache.t3.micro", - "cache.m4.4xlarge", - "cache.r4.16xlarge", - "cache.m1.large", - "cache.r6gd.2xlarge", - "cache.m3.medium", + "cache.r5.4xlarge", + "cache.m2.xlarge", + "cache.r5.24xlarge", + "cache.r6g.8xlarge", + "cache.r5.12xlarge", "cache.r6g.xlarge", + "cache.r6g.large", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r5.2xlarge", + "cache.r6gd.12xlarge", + "cache.t1.micro", + "cache.m6g.2xlarge", + "cache.r6gd.2xlarge", + "cache.r5.xlarge", + "cache.r6gd.4xlarge", + "cache.m6g.16xlarge", + "cache.m1.medium", + "cache.m5.large", + "cache.m1.xlarge", "cache.m3.2xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", "cache.m5.xlarge", - "cache.m1.medium", - "cache.m2.2xlarge", - "cache.r4.large", - "cache.r4.8xlarge", - "cache.r6gd.4xlarge", - "cache.r5.24xlarge", - "cache.r5.xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.c1.xlarge", - "cache.m3.xlarge", - "cache.r6g.4xlarge", - "cache.m1.xlarge", + "cache.m4.xlarge", "cache.t2.small", - "cache.r4.4xlarge", - "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", - "cache.r3.xlarge", - "cache.m5.2xlarge", - "cache.t1.micro", - "cache.m5.24xlarge", - "cache.m4.large", + "cache.m3.medium", "cache.m6g.8xlarge", - "cache.m2.xlarge", - "cache.m3.large", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.t4g.micro", - "cache.r3.large", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", + "cache.r4.large", + "cache.r4.2xlarge", "cache.r6gd.8xlarge", - "cache.r4.xlarge", - "cache.m6g.large", - "cache.r6g.12xlarge", + "cache.m4.4xlarge", + "cache.t3.medium", + "cache.r3.4xlarge", + "cache.t4g.micro", + "cache.t3.small", + "cache.m1.large", + "cache.r6g.4xlarge", + "cache.m5.2xlarge", + "cache.c1.xlarge", + "cache.m6g.4xlarge", + "cache.t2.micro", + "cache.r6gd.16xlarge", "cache.m5.12xlarge", + "cache.r4.16xlarge", + "cache.m6g.large", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m4.10xlarge", - "cache.m5.large", - "cache.r6g.large", - "cache.r6gd.12xlarge", - "cache.r5.4xlarge", - "cache.m2.4xlarge", - "cache.r6g.2xlarge", - "cache.r3.2xlarge", "cache.r6g.16xlarge", - "cache.m5.4xlarge", + "cache.m5.24xlarge", + "cache.r4.xlarge", + "cache.t4g.small", + "cache.r3.8xlarge", + "cache.r6g.12xlarge", + "cache.m3.xlarge", + "cache.r3.xlarge", + "cache.r4.8xlarge", + "cache.m3.large", "cache.m1.small", - "cache.t3.small", + "cache.m2.4xlarge", "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.r5.2xlarge" + "cache.r3.large", + "cache.m2.2xlarge" ] }, "us-east-1": { "enum": [ - "cache.r6gd.16xlarge", - "cache.t3.micro", - "cache.m4.4xlarge", - "cache.r4.16xlarge", - "cache.m1.large", - "cache.r6gd.2xlarge", - "cache.m3.medium", - "cache.r6g.xlarge", - "cache.m3.2xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.m1.medium", - "cache.r4.large", - "cache.r4.8xlarge", - "cache.r6gd.4xlarge", - "cache.m2.2xlarge", - "cache.r5.24xlarge", + "cache.m4.large", + "cache.r6g.large", + "cache.m6g.2xlarge", "cache.r5.xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.c1.xlarge", - "cache.m3.xlarge", - "cache.r6g.4xlarge", + "cache.m1.medium", + "cache.m5.large", "cache.m1.xlarge", - "cache.t2.small", - "cache.r4.4xlarge", - "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", + "cache.m7g.large", + "cache.r4.large", + "cache.r7g.16xlarge", + "cache.r7g.large", + "cache.r7g.2xlarge", + "cache.r7g.xlarge", + "cache.m6g.large", + "cache.m7g.4xlarge", + "cache.r4.xlarge", + "cache.m7g.12xlarge", + "cache.m7g.8xlarge", "cache.r3.xlarge", - "cache.m5.2xlarge", - "cache.t1.micro", - "cache.m5.24xlarge", - "cache.m4.large", + "cache.m1.small", + "cache.m2.4xlarge", "cache.m6g.8xlarge", - "cache.m3.large", - "cache.m2.xlarge", - "cache.r6g.8xlarge", - "cache.t4g.micro", - "cache.r5.12xlarge", "cache.r3.large", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", + "cache.t1.micro", + "cache.r4.4xlarge", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r6gd.12xlarge", + "cache.r6gd.2xlarge", + "cache.m3.2xlarge", + "cache.m4.xlarge", + "cache.r4.2xlarge", "cache.r6gd.8xlarge", - "cache.m4.2xlarge", - "cache.r6g.12xlarge", - "cache.m6g.large", - "cache.r4.xlarge", + "cache.m4.4xlarge", + "cache.r3.4xlarge", + "cache.t4g.micro", + "cache.t3.small", + "cache.m1.large", + "cache.r6g.4xlarge", + "cache.c1.xlarge", "cache.m5.12xlarge", - "cache.t2.medium", - "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.r6gd.12xlarge", + "cache.c7gn.large", + "cache.t4g.small", + "cache.m2.2xlarge", + "cache.m5.4xlarge", "cache.m4.10xlarge", - "cache.r6g.large", - "cache.m2.4xlarge", + "cache.m3.large", + "cache.m6g.xlarge", "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.r3.2xlarge", - "cache.r6g.16xlarge", - "cache.m5.4xlarge", - "cache.m1.small", - "cache.t3.small", - "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.r5.2xlarge" - ] - }, - "us-east-2": { - "enum": [ + "cache.m7g.2xlarge", + "cache.m2.xlarge", + "cache.r6gd.4xlarge", + "cache.m6g.16xlarge", + "cache.m5.xlarge", + "cache.t2.small", + "cache.r7g.8xlarge", + "cache.t2.micro", "cache.r6gd.16xlarge", - "cache.t3.micro", - "cache.m4.4xlarge", "cache.r4.16xlarge", - "cache.r6gd.2xlarge", - "cache.r6g.xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", + "cache.t2.medium", + "cache.m6g.12xlarge", + "cache.m5.24xlarge", + "cache.m3.xlarge", "cache.r4.8xlarge", - "cache.r4.large", - "cache.r6gd.4xlarge", + "cache.r6gd.xlarge", + "cache.c7gn.xlarge", + "cache.t4g.medium", + "cache.m4.2xlarge", + "cache.r6g.2xlarge", + "cache.t3.micro", + "cache.r6g.xlarge", "cache.r5.24xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.r6g.4xlarge", - "cache.t2.small", - "cache.r4.4xlarge", + "cache.r6g.8xlarge", + "cache.r5.12xlarge", + "cache.m7g.xlarge", "cache.r5.2xlarge", + "cache.m3.medium", + "cache.t3.medium", "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", - "cache.r3.xlarge", "cache.m5.2xlarge", - "cache.m5.24xlarge", + "cache.r7g.12xlarge", + "cache.m7g.16xlarge", + "cache.r6g.16xlarge", + "cache.r7g.4xlarge", + "cache.r3.8xlarge", + "cache.r6g.12xlarge" + ] + }, + "us-east-2": { + "enum": [ + "cache.m5.4xlarge", "cache.m4.large", - "cache.m6g.8xlarge", + "cache.t4g.medium", + "cache.m4.2xlarge", + "cache.m4.10xlarge", + "cache.r4.4xlarge", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", + "cache.t3.micro", + "cache.r5.4xlarge", + "cache.r6g.xlarge", "cache.r6g.8xlarge", + "cache.m7g.2xlarge", "cache.r5.12xlarge", - "cache.t4g.micro", - "cache.r3.large", + "cache.m7g.xlarge", + "cache.r6g.large", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r5.2xlarge", + "cache.r5.24xlarge", + "cache.r6gd.12xlarge", + "cache.r6gd.2xlarge", "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", + "cache.r5.xlarge", + "cache.r6gd.4xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m7g.large", + "cache.m5.xlarge", + "cache.m4.xlarge", + "cache.t2.small", + "cache.m6g.8xlarge", + "cache.r4.large", + "cache.r7g.8xlarge", + "cache.r4.2xlarge", + "cache.r7g.large", + "cache.r7g.16xlarge", "cache.r6gd.8xlarge", - "cache.r6g.12xlarge", - "cache.r4.xlarge", - "cache.m6g.large", + "cache.m4.4xlarge", + "cache.r7g.2xlarge", + "cache.t3.medium", + "cache.r3.4xlarge", + "cache.t4g.micro", + "cache.m6g.4xlarge", + "cache.t3.small", + "cache.r6g.4xlarge", + "cache.m5.2xlarge", + "cache.t2.micro", "cache.m5.12xlarge", + "cache.r4.16xlarge", + "cache.r6gd.16xlarge", + "cache.r7g.12xlarge", + "cache.m7g.16xlarge", + "cache.m6g.large", + "cache.r7g.xlarge", + "cache.c7gn.large", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.m4.10xlarge", - "cache.r6g.large", - "cache.r6gd.12xlarge", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.r3.2xlarge", "cache.r6g.16xlarge", - "cache.m5.4xlarge", - "cache.t3.small", + "cache.r7g.4xlarge", + "cache.m5.24xlarge", + "cache.r4.xlarge", + "cache.t4g.small", + "cache.m7g.12xlarge", + "cache.m7g.4xlarge", + "cache.r3.8xlarge", + "cache.r6g.12xlarge", + "cache.m7g.8xlarge", + "cache.r4.8xlarge", + "cache.r3.xlarge", "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.r5.xlarge" + "cache.r3.large", + "cache.c7gn.xlarge" ] }, "us-gov-east-1": { "enum": [ + "cache.m5.4xlarge", + "cache.r6g.2xlarge", + "cache.m6g.xlarge", + "cache.r5.4xlarge", "cache.t3.micro", "cache.r6g.xlarge", - "cache.t3.medium", - "cache.m5.xlarge", "cache.r5.24xlarge", - "cache.r5.xlarge", + "cache.r6g.8xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", "cache.r5.large", - "cache.t2.micro", - "cache.r6g.4xlarge", + "cache.r5.2xlarge", + "cache.m6g.2xlarge", + "cache.r5.xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m5.xlarge", "cache.t2.small", + "cache.t3.medium", + "cache.t3.small", "cache.m6g.4xlarge", + "cache.r6g.4xlarge", "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m6g.8xlarge", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.r6g.12xlarge", - "cache.m6g.large", + "cache.t2.micro", "cache.m5.12xlarge", + "cache.m6g.large", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.r6g.large", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", + "cache.m5.24xlarge", "cache.r6g.16xlarge", - "cache.t3.small", - "cache.r5.2xlarge" + "cache.r6g.12xlarge", + "cache.m6g.8xlarge" ] }, "us-gov-west-1": { "enum": [ - "cache.t3.micro", - "cache.r4.16xlarge", - "cache.m3.medium", - "cache.r6g.xlarge", - "cache.m3.2xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.r4.large", - "cache.r4.8xlarge", - "cache.r5.24xlarge", - "cache.r5.xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.m3.xlarge", - "cache.r6g.4xlarge", - "cache.t2.small", + "cache.m5.4xlarge", + "cache.r6g.2xlarge", "cache.r4.4xlarge", - "cache.m6g.4xlarge", - "cache.r3.8xlarge", - "cache.r3.xlarge", - "cache.m5.2xlarge", - "cache.m5.24xlarge", - "cache.m6g.8xlarge", "cache.m3.large", + "cache.m6g.xlarge", + "cache.r5.4xlarge", + "cache.t3.micro", + "cache.r6g.xlarge", "cache.r6g.8xlarge", + "cache.r5.24xlarge", "cache.r5.12xlarge", - "cache.r3.large", + "cache.r6g.large", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r5.2xlarge", "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.r6g.12xlarge", - "cache.r4.xlarge", - "cache.m6g.large", + "cache.r5.xlarge", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m3.2xlarge", + "cache.m5.xlarge", + "cache.m3.medium", + "cache.t2.small", + "cache.r4.large", + "cache.r4.2xlarge", + "cache.t3.medium", + "cache.r3.4xlarge", + "cache.t3.small", + "cache.m6g.4xlarge", + "cache.r6g.4xlarge", + "cache.m5.2xlarge", + "cache.t2.micro", "cache.m5.12xlarge", + "cache.r4.16xlarge", + "cache.m6g.large", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m5.large", - "cache.r6g.large", - "cache.r5.4xlarge", - "cache.r6g.2xlarge", - "cache.m5.4xlarge", "cache.r6g.16xlarge", - "cache.r3.2xlarge", - "cache.t3.small", - "cache.r3.4xlarge", - "cache.r5.2xlarge" + "cache.m5.24xlarge", + "cache.r4.xlarge", + "cache.r3.8xlarge", + "cache.r6g.12xlarge", + "cache.m3.xlarge", + "cache.r3.xlarge", + "cache.r4.8xlarge", + "cache.m6g.8xlarge", + "cache.r3.large" ] }, "us-west-1": { "enum": [ - "cache.r6gd.16xlarge", + "cache.m5.4xlarge", + "cache.m4.large", + "cache.m4.2xlarge", + "cache.t4g.medium", + "cache.m4.10xlarge", + "cache.r4.4xlarge", + "cache.m3.large", + "cache.t1.micro", "cache.t3.micro", - "cache.m4.4xlarge", - "cache.m1.large", - "cache.r4.16xlarge", - "cache.r6gd.2xlarge", - "cache.m3.medium", + "cache.r5.4xlarge", "cache.r6g.xlarge", - "cache.m3.2xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", - "cache.m1.medium", - "cache.m2.2xlarge", - "cache.r4.large", - "cache.r4.8xlarge", - "cache.r6gd.4xlarge", + "cache.r6g.8xlarge", "cache.r5.24xlarge", + "cache.r5.12xlarge", + "cache.r6g.large", + "cache.m6g.xlarge", + "cache.r3.2xlarge", "cache.r5.large", - "cache.t2.micro", - "cache.c1.xlarge", - "cache.m3.xlarge", - "cache.r6g.4xlarge", + "cache.r5.2xlarge", + "cache.m2.xlarge", + "cache.r6gd.12xlarge", + "cache.m6g.2xlarge", + "cache.r6gd.2xlarge", + "cache.r5.xlarge", + "cache.r6gd.4xlarge", + "cache.m1.medium", + "cache.m6g.16xlarge", + "cache.m5.large", + "cache.m3.2xlarge", "cache.m1.xlarge", + "cache.m5.xlarge", + "cache.m4.xlarge", "cache.t2.small", - "cache.r4.4xlarge", - "cache.r5.2xlarge", + "cache.m6g.8xlarge", + "cache.m3.medium", + "cache.r4.large", + "cache.r4.2xlarge", + "cache.r6gd.8xlarge", + "cache.m4.4xlarge", + "cache.t3.medium", + "cache.r3.4xlarge", + "cache.m1.large", + "cache.t3.small", "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", - "cache.r3.xlarge", + "cache.r6g.4xlarge", "cache.m5.2xlarge", - "cache.t1.micro", - "cache.m5.24xlarge", - "cache.m4.large", - "cache.m6g.8xlarge", - "cache.m3.large", - "cache.m2.xlarge", - "cache.r6g.8xlarge", + "cache.c1.xlarge", "cache.t4g.micro", - "cache.r5.12xlarge", - "cache.r3.large", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", - "cache.m4.2xlarge", - "cache.r6gd.8xlarge", - "cache.r4.xlarge", - "cache.r6g.12xlarge", - "cache.m6g.large", + "cache.t2.micro", + "cache.r6gd.16xlarge", + "cache.r4.16xlarge", "cache.m5.12xlarge", + "cache.m6g.large", "cache.t2.medium", "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.m4.10xlarge", - "cache.m5.large", - "cache.r6g.large", - "cache.r6gd.12xlarge", - "cache.r5.4xlarge", - "cache.m2.4xlarge", - "cache.r6g.2xlarge", - "cache.r3.2xlarge", - "cache.m5.4xlarge", + "cache.m5.24xlarge", "cache.r6g.16xlarge", + "cache.r4.xlarge", + "cache.t4g.small", + "cache.r3.8xlarge", + "cache.r6g.12xlarge", + "cache.m3.xlarge", + "cache.r3.xlarge", + "cache.r4.8xlarge", "cache.m1.small", - "cache.t3.small", + "cache.m2.4xlarge", + "cache.r6g.2xlarge", "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.r5.xlarge" + "cache.r3.large", + "cache.m2.2xlarge" ] }, "us-west-2": { "enum": [ - "cache.t3.micro", - "cache.r6gd.16xlarge", - "cache.m4.4xlarge", - "cache.m1.large", - "cache.r4.16xlarge", - "cache.r6gd.2xlarge", - "cache.m3.medium", - "cache.r6g.xlarge", - "cache.m3.2xlarge", - "cache.r4.2xlarge", - "cache.t3.medium", - "cache.m5.xlarge", + "cache.m4.large", + "cache.r6g.large", + "cache.m6g.2xlarge", + "cache.r5.xlarge", "cache.m1.medium", - "cache.r4.8xlarge", - "cache.r6gd.4xlarge", - "cache.r4.large", - "cache.m2.2xlarge", - "cache.r5.24xlarge", - "cache.r5.large", - "cache.t2.micro", - "cache.c1.xlarge", - "cache.m3.xlarge", - "cache.r6g.4xlarge", + "cache.m5.large", "cache.m1.xlarge", - "cache.t2.small", - "cache.r5.2xlarge", - "cache.r4.4xlarge", - "cache.m6g.4xlarge", - "cache.t4g.small", - "cache.r3.8xlarge", + "cache.m7g.large", + "cache.r4.large", + "cache.r7g.large", + "cache.r7g.16xlarge", + "cache.r7g.2xlarge", + "cache.r7g.xlarge", + "cache.m6g.large", + "cache.m7g.4xlarge", + "cache.r4.xlarge", + "cache.m7g.12xlarge", + "cache.m7g.8xlarge", "cache.r3.xlarge", - "cache.m5.2xlarge", - "cache.t1.micro", - "cache.m5.24xlarge", - "cache.m4.large", + "cache.m1.small", + "cache.m2.4xlarge", "cache.m6g.8xlarge", - "cache.m2.xlarge", - "cache.m3.large", - "cache.r6g.8xlarge", - "cache.r5.12xlarge", - "cache.t4g.micro", "cache.r3.large", - "cache.m6g.2xlarge", - "cache.m6g.xlarge", - "cache.t4g.medium", + "cache.t1.micro", + "cache.r4.4xlarge", + "cache.r3.2xlarge", + "cache.r5.large", + "cache.r6gd.12xlarge", + "cache.r6gd.2xlarge", + "cache.m3.2xlarge", + "cache.m4.xlarge", + "cache.r4.2xlarge", "cache.r6gd.8xlarge", - "cache.m4.2xlarge", - "cache.r4.xlarge", - "cache.m6g.large", - "cache.r6g.12xlarge", + "cache.m4.4xlarge", + "cache.r3.4xlarge", + "cache.m1.large", + "cache.t3.small", + "cache.t4g.micro", + "cache.r6g.4xlarge", + "cache.c1.xlarge", "cache.m5.12xlarge", - "cache.t2.medium", - "cache.m6g.12xlarge", - "cache.m6g.16xlarge", - "cache.r6g.large", + "cache.c7gn.large", + "cache.t4g.small", + "cache.m2.2xlarge", + "cache.m5.4xlarge", "cache.m4.10xlarge", - "cache.m5.large", - "cache.r6gd.12xlarge", - "cache.m2.4xlarge", + "cache.m3.large", + "cache.m6g.xlarge", "cache.r5.4xlarge", + "cache.m2.xlarge", + "cache.m7g.2xlarge", + "cache.r6gd.4xlarge", + "cache.m6g.16xlarge", + "cache.m5.xlarge", + "cache.t2.small", + "cache.r7g.8xlarge", + "cache.t2.micro", + "cache.r6gd.16xlarge", + "cache.r4.16xlarge", + "cache.t2.medium", + "cache.m6g.12xlarge", + "cache.m5.24xlarge", + "cache.m3.xlarge", + "cache.r4.8xlarge", + "cache.r6gd.xlarge", + "cache.c7gn.xlarge", + "cache.t4g.medium", + "cache.m4.2xlarge", "cache.r6g.2xlarge", - "cache.r3.2xlarge", - "cache.m5.4xlarge", + "cache.t3.micro", + "cache.r6g.xlarge", + "cache.r5.24xlarge", + "cache.r6g.8xlarge", + "cache.r5.12xlarge", + "cache.m7g.xlarge", + "cache.r5.2xlarge", + "cache.m3.medium", + "cache.t3.medium", + "cache.m6g.4xlarge", + "cache.m5.2xlarge", + "cache.r7g.12xlarge", + "cache.m7g.16xlarge", "cache.r6g.16xlarge", - "cache.m1.small", - "cache.t3.small", - "cache.r6gd.xlarge", - "cache.r3.4xlarge", - "cache.m4.xlarge", - "cache.r5.xlarge" + "cache.r7g.4xlarge", + "cache.r3.8xlarge", + "cache.r6g.12xlarge" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_emr_cluster/instancetypeconfig_instancetype_enum.json b/src/cfnlint/data/schemas/extensions/aws_emr_cluster/instancetypeconfig_instancetype_enum.json index 986b971253..2f0d4f6988 100644 --- a/src/cfnlint/data/schemas/extensions/aws_emr_cluster/instancetypeconfig_instancetype_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_emr_cluster/instancetypeconfig_instancetype_enum.json @@ -2,6770 +2,9163 @@ "_description": "Automatically updated using update_specs_from_pricing", "af-south-1": { "enum": [ - "c5.12xlarge", - "g4dn.12xlarge", - "m5.24xlarge", - "m5d.16xlarge", - "c5ad.4xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "x1e.2xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "r6i.8xlarge", + "m6gd.2xlarge", + "x2iedn.24xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c5ad.8xlarge", + "r5d.8xlarge", + "m6g.2xlarge", "r6i.24xlarge", - "x1e.4xlarge", + "c5a.16xlarge", + "x1.32xlarge", + "r5.24xlarge", + "m5.24xlarge", + "x1e.32xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r5n.12xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "c5.9xlarge", + "d2.2xlarge", + "d2.4xlarge", + "c5a.12xlarge", + "r6g.12xlarge", "c5n.9xlarge", - "m6gd.2xlarge", + "g4dn.16xlarge", "i3en.12xlarge", - "m6i.4xlarge", - "r5dn.12xlarge", - "i3.xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", + "r5dn.24xlarge", + "c6i.16xlarge", + "m6i.16xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5d.8xlarge", + "c6in.12xlarge", + "c5n.4xlarge", "r5d.24xlarge", - "i3.2xlarge", + "c6in.24xlarge", + "r6g.2xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "r5n.8xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "c5.24xlarge", + "m6i.4xlarge", + "c5a.4xlarge", + "c5d.2xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "c5ad.xlarge", + "x2iedn.32xlarge", + "c6in.4xlarge", + "m6gd.12xlarge", + "c5ad.2xlarge", "c5d.4xlarge", - "r5dn.8xlarge", - "c5a.xlarge", + "i4i.8xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", "i3en.2xlarge", + "r5.12xlarge", + "x2idn.16xlarge", + "r5.2xlarge", + "i3.xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6in.xlarge", + "c5ad.4xlarge", + "c6i.32xlarge", + "r5n.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", "c5ad.12xlarge", + "r5d.xlarge", + "i4i.12xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m6gd.4xlarge", + "g4dn.xlarge", + "m5.2xlarge", + "r5dn.xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "c5n.xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "m6g.12xlarge", + "i4i.xlarge", + "c5a.xlarge", + "c5d.12xlarge", "r5n.2xlarge", - "m6i.16xlarge", - "m5d.24xlarge", - "m6gd.xlarge", + "c5a.2xlarge", + "c5.18xlarge", "m5d.12xlarge", - "r6i.xlarge", - "m5.16xlarge", - "m5d.xlarge", - "c5ad.24xlarge", - "c5a.8xlarge", + "r5.4xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "c5n.2xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "r5n.16xlarge", + "i3en.24xlarge", + "i4i.24xlarge", "m5d.2xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "r5n.12xlarge", + "r6i.4xlarge", + "r5dn.12xlarge", + "c5n.18xlarge", "c5d.24xlarge", - "r5d.4xlarge", - "r5dn.24xlarge", - "g4dn.2xlarge", + "x2idn.24xlarge", + "x1e.16xlarge", + "x1e.4xlarge", + "x2iedn.xlarge", + "r6i.2xlarge", + "c5a.24xlarge", + "r5dn.2xlarge", + "m6gd.16xlarge", + "c5ad.24xlarge", + "r6i.xlarge", + "g4dn.8xlarge", + "m5d.24xlarge", + "r5n.xlarge", "c6i.12xlarge", - "r5dn.xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r6i.8xlarge", - "r5.12xlarge", - "c6i.24xlarge", - "c5.xlarge", - "r5d.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", + "m6g.8xlarge", + "r5dn.4xlarge", "i3.16xlarge", - "x1e.8xlarge", - "g4dn.xlarge", - "d2.8xlarge", - "c5.4xlarge", - "x1.16xlarge", - "c6i.8xlarge", - "c5.2xlarge", - "m5.12xlarge", - "m6gd.8xlarge", - "r5n.16xlarge", - "c5d.xlarge", - "c5ad.2xlarge", - "c5d.2xlarge", - "c6i.2xlarge", - "r5d.2xlarge", - "m6gd.12xlarge", - "c6i.4xlarge", - "i3en.6xlarge", - "m6i.24xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "m6i.32xlarge", "c5ad.16xlarge", - "m6gd.16xlarge", - "m5.8xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "c5n.18xlarge", + "r5n.24xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "c6in.2xlarge", + "g4dn.12xlarge" + ] + }, + "ap-east-1": { + "enum": [ + "c6gn.8xlarge", + "i4i.16xlarge", + "r5d.12xlarge", "i3.4xlarge", - "r5.xlarge", - "r5dn.4xlarge", - "c5n.4xlarge", - "r5.2xlarge", + "c5.xlarge", "m6i.12xlarge", - "c5n.xlarge", - "r5dn.16xlarge", - "x1e.32xlarge", - "c6i.16xlarge", - "m5d.4xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "c6g.16xlarge", "d2.xlarge", - "x1e.xlarge", - "m6i.2xlarge", - "i3.8xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r6i.24xlarge", + "c5a.16xlarge", + "x1.32xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", - "m6gd.4xlarge", - "c5ad.8xlarge", - "r5.4xlarge", - "i3en.3xlarge", - "c5a.24xlarge", - "r5n.4xlarge", - "x1e.2xlarge", - "r5n.24xlarge", - "c6i.32xlarge", - "m5.2xlarge", - "r6i.2xlarge", - "m5.xlarge", - "r5n.8xlarge", - "c5n.2xlarge", - "m5d.8xlarge", - "x1e.16xlarge", - "r5n.xlarge", - "m6i.xlarge", - "r5d.8xlarge", - "i3en.24xlarge", + "m6g.16xlarge", "c5d.9xlarge", - "r6i.12xlarge", + "r5n.12xlarge", + "c5.12xlarge", "r6i.32xlarge", + "d2.2xlarge", + "c5.9xlarge", + "d2.4xlarge", "c5a.12xlarge", - "r6i.4xlarge", - "g4dn.16xlarge", - "c5ad.xlarge", - "r5d.16xlarge", - "i3en.xlarge", - "g4dn.8xlarge", - "c5.18xlarge", - "r5dn.2xlarge", - "m6i.8xlarge" - ] - }, - "ap-east-1": { - "enum": [ - "c5.12xlarge", - "i2.xlarge", - "g4dn.12xlarge", - "m5.24xlarge", - "m5d.16xlarge", - "r6i.24xlarge", + "r6g.12xlarge", "c5n.9xlarge", + "g4dn.16xlarge", + "c6gn.xlarge", "i3en.12xlarge", - "m6i.4xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "m5d.8xlarge", + "r6g.xlarge", + "c5n.4xlarge", "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "c5a.xlarge", - "i3en.2xlarge", - "c6gn.xlarge", "r6g.2xlarge", - "i2.2xlarge", - "r5n.2xlarge", - "m6i.16xlarge", - "i4i.2xlarge", - "m5d.24xlarge", - "c6g.8xlarge", - "m3.xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", - "c6g.16xlarge", - "m5d.xlarge", - "c6gn.2xlarge", "m5.16xlarge", + "r5n.8xlarge", + "g4dn.4xlarge", + "r6g.4xlarge", "m6g.xlarge", - "i2.4xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "r5n.12xlarge", - "r5d.4xlarge", - "m6g.8xlarge", - "g4dn.2xlarge", - "c6i.12xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "hi1.4xlarge", + "m6i.4xlarge", "c5.24xlarge", - "r5.16xlarge", - "r6i.8xlarge", + "c5a.4xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "i3.8xlarge", + "i4i.2xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "i4i.8xlarge", + "hs1.8xlarge", + "i2.4xlarge", + "i4i.32xlarge", + "m5.12xlarge", + "i3en.2xlarge", "r5.12xlarge", - "c6i.24xlarge", - "i4i.4xlarge", + "i3.xlarge", + "r5.2xlarge", + "m6i.8xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6i.32xlarge", + "r5n.4xlarge", "r6g.16xlarge", - "i4i.32xlarge", - "c5.xlarge", "r5d.xlarge", - "r5d.12xlarge", - "c5d.18xlarge", - "i3.16xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", "g4dn.xlarge", - "d2.8xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "x1.16xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "m5.12xlarge", - "r5n.16xlarge", - "r6g.8xlarge", - "c5d.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", "r5d.2xlarge", - "c6i.4xlarge", - "i3en.6xlarge", - "m6g.2xlarge", - "hi1.4xlarge", - "m6i.24xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "hs1.8xlarge", - "m5.8xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "i4i.16xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "c5n.4xlarge", - "r5.2xlarge", - "m6i.12xlarge", + "m5.2xlarge", "c5n.xlarge", - "m6g.4xlarge", - "i4i.xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "d2.xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", "m6i.2xlarge", + "i3.2xlarge", + "i4i.xlarge", "m6g.12xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5n.2xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c6g.4xlarge", "r5.4xlarge", - "i3en.3xlarge", - "c5a.24xlarge", - "r5n.4xlarge", - "r5n.24xlarge", - "c6i.32xlarge", - "m5.2xlarge", - "r6i.2xlarge", - "m5.xlarge", - "r5n.8xlarge", - "c6gn.4xlarge", + "m5d.12xlarge", "c5n.2xlarge", - "m5d.8xlarge", - "r5n.xlarge", - "c6gn.16xlarge", - "m6i.xlarge", - "i2.8xlarge", - "c5d.9xlarge", + "m6i.24xlarge", + "r6g.8xlarge", + "c5d.18xlarge", "i3en.24xlarge", - "r5d.8xlarge", - "r6i.12xlarge", - "r6i.32xlarge", - "c5a.12xlarge", + "c6gn.4xlarge", + "r5n.16xlarge", + "c6i.xlarge", + "m3.xlarge", + "i4i.24xlarge", + "m5d.2xlarge", "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "i4i.8xlarge", - "i3en.xlarge", - "c6g.4xlarge", + "c5n.18xlarge", + "i2.2xlarge", + "r6i.2xlarge", + "c5a.24xlarge", + "c6g.xlarge", "g4dn.8xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "m6i.8xlarge" + "r6i.xlarge", + "m5d.24xlarge", + "r5n.xlarge", + "c6i.12xlarge", + "m6g.8xlarge", + "i3.16xlarge", + "i2.xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "r5n.24xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "i2.8xlarge", + "g4dn.12xlarge" ] }, "ap-northeast-1": { "enum": [ - "g5.12xlarge", - "r6i.24xlarge", - "m6gd.2xlarge", - "g5.2xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "m1.medium", - "m5a.xlarge", - "m5a.16xlarge", - "c6gn.xlarge", - "i2.2xlarge", - "m5d.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "m3.xlarge", - "m6a.4xlarge", - "m5d.12xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6gn.2xlarge", - "r4.4xlarge", - "d3.xlarge", - "m5a.4xlarge", + "x1e.2xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c5a.16xlarge", + "c7gn.xlarge", "r5.24xlarge", - "r5dn.24xlarge", - "m6g.8xlarge", - "m1.small", - "c5.24xlarge", - "r5.16xlarge", - "m4.large", - "c6i.24xlarge", - "r6g.16xlarge", + "x1.32xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "r3.2xlarge", "r5ad.xlarge", + "m6g.16xlarge", + "r6a.12xlarge", + "c5d.9xlarge", + "m5dn.4xlarge", + "d3en.12xlarge", + "c4.xlarge", + "d2.4xlarge", + "r3.8xlarge", + "c6gn.xlarge", + "r7gd.16xlarge", + "m6idn.4xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "c3.large", + "r5b.2xlarge", + "c7gd.12xlarge", "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", + "m6id.xlarge", + "is4gen.4xlarge", + "m6a.32xlarge", + "r4.8xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6a.4xlarge", + "r6g.4xlarge", + "r6idn.32xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c3.xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "r5b.4xlarge", + "c6in.4xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", "x1e.8xlarge", - "d2.8xlarge", - "c4.2xlarge", - "c6gd.12xlarge", + "hs1.8xlarge", + "i4i.32xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "r6id.4xlarge", + "m5zn.6xlarge", + "c5.2xlarge", + "c1.medium", + "m5zn.2xlarge", + "c7g.16xlarge", + "g3s.xlarge", + "r6gd.4xlarge", + "c6a.xlarge", + "r6in.12xlarge", + "r5d.16xlarge", + "r5ad.24xlarge", + "r6idn.8xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "c5a.2xlarge", + "c7gn.2xlarge", + "cr1.8xlarge", + "c6g.4xlarge", + "r5a.12xlarge", + "r5b.xlarge", + "m7g.2xlarge", + "p2.8xlarge", + "c5n.2xlarge", + "m5dn.24xlarge", "r6g.8xlarge", - "c6g.12xlarge", + "im4gn.xlarge", + "i4i.24xlarge", + "r6i.4xlarge", + "r5dn.12xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "r6in.4xlarge", + "r6idn.xlarge", "r4.16xlarge", - "r5d.2xlarge", - "cg1.4xlarge", - "m5zn.12xlarge", - "m5n.16xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.8xlarge", - "d2.2xlarge", - "x2iedn.2xlarge", + "i2.2xlarge", + "m7g.16xlarge", + "x2iedn.xlarge", + "r5dn.2xlarge", + "m6gd.16xlarge", + "m4.large", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", + "m1.large", + "d2.8xlarge", "r5.xlarge", - "i3.4xlarge", - "c5n.xlarge", + "d3.2xlarge", + "r5n.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "im4gn.8xlarge", + "m6a.24xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "c1.xlarge", + "m3.medium", + "c5.xlarge", + "d3en.8xlarge", "is4gen.xlarge", - "r5dn.16xlarge", + "m6i.12xlarge", + "c7gn.12xlarge", + "r7g.12xlarge", + "z1d.12xlarge", + "m1.medium", + "r7g.16xlarge", + "r6in.32xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", + "r5.8xlarge", + "c6id.24xlarge", + "c6id.12xlarge", + "c6id.2xlarge", + "g5.48xlarge", + "im4gn.16xlarge", + "d2.2xlarge", + "c5.9xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "p3.8xlarge", "c6i.16xlarge", - "r5b.8xlarge", - "g5.xlarge", - "x2iedn.xlarge", - "r5b.xlarge", - "x1e.2xlarge", - "m5n.4xlarge", + "m6i.16xlarge", + "m6in.4xlarge", + "m5n.2xlarge", + "m7gd.2xlarge", + "m5d.8xlarge", + "c6a.16xlarge", + "c7gd.16xlarge", + "r6g.2xlarge", + "m6in.24xlarge", + "m3.2xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "c6id.16xlarge", + "g5.2xlarge", + "r5ad.4xlarge", + "c5.4xlarge", + "d3.4xlarge", + "c5.24xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", + "c5d.2xlarge", + "d3en.xlarge", + "cg1.4xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", "m5n.24xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", + "r6in.8xlarge", + "m6i.8xlarge", "m5.xlarge", - "r5b.4xlarge", - "r5ad.12xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", - "m3.2xlarge", - "m5dn.8xlarge", - "r6gd.12xlarge", - "g5.16xlarge", - "r6g.xlarge", - "r6id.24xlarge", - "im4gn.2xlarge", - "c3.4xlarge", - "m5n.12xlarge", - "m5d.16xlarge", - "z1d.3xlarge", - "x1e.4xlarge", - "i3en.12xlarge", - "c6gd.4xlarge", - "r5ad.24xlarge", - "m5dn.xlarge", - "r5dn.12xlarge", - "c6gn.12xlarge", + "m5.4xlarge", + "z1d.2xlarge", + "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "c3.2xlarge", "m6a.8xlarge", - "m5ad.24xlarge", - "i3.xlarge", - "r5ad.4xlarge", - "i3.2xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "r6g.2xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m6idn.2xlarge", + "c7g.4xlarge", + "r6a.16xlarge", + "i3en.3xlarge", + "m5.2xlarge", "r5n.2xlarge", - "i4i.2xlarge", - "r6gd.8xlarge", - "m6g.16xlarge", - "m5ad.12xlarge", - "m5.16xlarge", - "m6a.24xlarge", - "m5n.xlarge", - "m6g.xlarge", - "m5d.2xlarge", - "is4gen.8xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", - "m5dn.4xlarge", - "r4.8xlarge", - "c6i.12xlarge", - "r6i.8xlarge", - "r5b.12xlarge", - "c4.8xlarge", - "i4i.32xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r3.2xlarge", - "x1.16xlarge", - "g3.16xlarge", - "r5n.16xlarge", - "r5a.16xlarge", - "r5a.12xlarge", - "m6g.2xlarge", + "m6a.xlarge", + "m5dn.16xlarge", + "c5.18xlarge", + "m7g.xlarge", + "m6gd.xlarge", "m6i.24xlarge", - "m6a.32xlarge", - "d3.2xlarge", - "m6a.2xlarge", + "m6idn.8xlarge", + "c5d.18xlarge", + "i3en.24xlarge", + "c7g.8xlarge", + "c6gn.4xlarge", + "r7g.8xlarge", + "c6i.xlarge", + "m6a.4xlarge", + "r7g.xlarge", "c5n.18xlarge", - "cr1.8xlarge", - "m6i.12xlarge", - "m5a.8xlarge", - "m5dn.24xlarge", - "x1e.32xlarge", - "m5ad.xlarge", - "m3.large", - "z1d.12xlarge", - "m6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "m6gd.4xlarge", - "r6id.2xlarge", - "r5.4xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c4.large", - "m5.2xlarge", - "c3.8xlarge", - "c5n.2xlarge", - "c6gn.16xlarge", - "m2.xlarge", - "i2.8xlarge", - "r5d.16xlarge", - "m5dn.12xlarge", - "r6g.4xlarge", - "i4i.8xlarge", - "m6a.16xlarge", - "r5b.2xlarge", - "m5n.2xlarge", - "m6i.8xlarge", - "i2.xlarge", "p2.16xlarge", - "g5.8xlarge", - "z1d.xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "r6id.8xlarge", - "x2iedn.24xlarge", - "r3.4xlarge", - "g2.2xlarge", - "z1d.2xlarge", - "x2iedn.4xlarge", - "m6gd.xlarge", "m5ad.2xlarge", - "r6gd.4xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "r5d.4xlarge", - "r6id.4xlarge", - "r5a.4xlarge", - "m6a.xlarge", - "m5a.2xlarge", - "r5dn.xlarge", - "m5zn.3xlarge", - "c5d.12xlarge", - "m5a.12xlarge", - "i4i.4xlarge", - "r5b.24xlarge", - "m5zn.2xlarge", + "m2.xlarge", + "m5dn.12xlarge", + "c7gd.xlarge", + "r6i.2xlarge", + "c6a.48xlarge", + "z1d.6xlarge", + "c6i.12xlarge", + "m6id.32xlarge", "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "c5.2xlarge", "c6i.8xlarge", - "m5.12xlarge", - "im4gn.16xlarge", - "c5d.2xlarge", - "g3.8xlarge", - "m5dn.16xlarge", - "hi1.4xlarge", - "m5n.8xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "r6in.16xlarge", + "m5dn.2xlarge", + "c6in.2xlarge", + "i3.4xlarge", + "r6in.xlarge", + "m6in.2xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "c6g.16xlarge", + "m6in.32xlarge", + "c6id.8xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "m5.24xlarge", + "r5b.24xlarge", + "r6gd.2xlarge", + "r6in.2xlarge", + "r5n.12xlarge", + "r4.xlarge", + "r6idn.4xlarge", + "g5.4xlarge", + "r6a.xlarge", + "c6gd.4xlarge", + "c5n.9xlarge", + "r6g.12xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "r5dn.24xlarge", + "c3.4xlarge", "m2.4xlarge", - "m5.4xlarge", - "i4i.16xlarge", - "r5dn.4xlarge", - "m6a.48xlarge", - "p2.8xlarge", - "m6g.4xlarge", + "r6id.16xlarge", + "c6id.32xlarge", + "m4.16xlarge", + "x1.16xlarge", "m5d.4xlarge", - "cc2.8xlarge", - "c1.medium", - "x1e.xlarge", + "r6g.xlarge", + "cc1.4xlarge", + "m5zn.3xlarge", + "c6id.xlarge", + "g5.xlarge", + "m5n.xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "r5b.16xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "i3.8xlarge", + "i4i.2xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "c7gn.4xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "m3.large", + "c7gd.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "r6a.32xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r6idn.12xlarge", + "r6id.8xlarge", + "i4i.12xlarge", + "g3.4xlarge", + "m6id.2xlarge", + "r7gd.4xlarge", + "r6idn.2xlarge", + "r7gd.2xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r6in.24xlarge", + "r5dn.xlarge", + "r5.16xlarge", "m6i.2xlarge", - "g3s.xlarge", - "r6g.12xlarge", - "c3.xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5.4xlarge", + "m5dn.8xlarge", + "c7g.xlarge", + "r5b.12xlarge", + "m5n.16xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "c6gd.xlarge", + "m5zn.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "c7gn.8xlarge", + "m2.2xlarge", + "x1e.16xlarge", + "is4gen.8xlarge", "c5a.24xlarge", + "m5n.4xlarge", "r6id.xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", + "m6id.4xlarge", + "r5ad.12xlarge", "r5n.xlarge", - "m6i.xlarge", - "r5d.8xlarge", - "r6i.32xlarge", - "g4dn.16xlarge", - "c4.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", + "r6id.24xlarge", "im4gn.4xlarge", - "is4gen.4xlarge", - "r4.2xlarge", + "i4i.4xlarge", "c6g.2xlarge", - "c5.18xlarge", - "m1.large", + "r6i.8xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r6a.48xlarge", + "c7gn.16xlarge", + "z1d.3xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "g5.24xlarge", "c5.12xlarge", - "m5zn.6xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "c5n.9xlarge", - "m4.10xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "i3en.12xlarge", "r6id.32xlarge", - "t1.micro", - "c6gd.2xlarge", - "im4gn.8xlarge", + "d3en.4xlarge", + "m6i.xlarge", + "m6id.24xlarge", + "m5n.8xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "m5dn.xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "m6id.12xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", + "hi1.4xlarge", "m6i.4xlarge", + "m6idn.xlarge", + "g5.16xlarge", + "c7gd.2xlarge", + "r6i.12xlarge", "p3.2xlarge", - "g5.4xlarge", - "c1.xlarge", - "p3.16xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "c5a.xlarge", - "m1.xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.16xlarge", - "c3.large", - "c3.2xlarge", + "r6gd.8xlarge", "i2.4xlarge", - "r6gd.xlarge", - "cc1.4xlarge", - "c5d.24xlarge", - "z1d.6xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "r6id.12xlarge", - "c6gd.xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "im4gn.xlarge", - "c4.4xlarge", - "m2.2xlarge", "m6gd.8xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r4.xlarge", - "c5d.xlarge", + "m5.12xlarge", + "r5b.8xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "m5n.12xlarge", + "c6a.32xlarge", + "m7g.12xlarge", "d3.8xlarge", - "c6i.2xlarge", - "m6gd.12xlarge", + "c6i.32xlarge", + "r6idn.24xlarge", + "r5n.4xlarge", + "c6id.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", "i3en.6xlarge", - "c6i.4xlarge", - "g5.48xlarge", - "m6i.32xlarge", - "hs1.8xlarge", - "m6gd.16xlarge", - "m4.xlarge", - "r6i.16xlarge", - "d2.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "g3.16xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "d3en.2xlarge", "r5a.8xlarge", - "r5.2xlarge", - "i4i.xlarge", - "d2.xlarge", - "m3.medium", - "r5b.16xlarge", - "x2iedn.8xlarge", - "is4gen.2xlarge", - "m5ad.8xlarge", - "c5.9xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "c6i.32xlarge", - "r5n.24xlarge", - "r6id.16xlarge", - "x1e.16xlarge", - "m5ad.4xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", + "m5d.12xlarge", + "m6id.8xlarge", + "r5n.16xlarge", + "d3.xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "m6id.16xlarge", + "x1e.4xlarge", + "r6a.24xlarge", + "r6idn.16xlarge", + "p2.xlarge", + "c6g.xlarge", + "t1.micro", + "c6gd.8xlarge", + "d3en.6xlarge", + "m1.xlarge", + "c4.4xlarge", "g4dn.8xlarge", - "m5dn.2xlarge", - "g5.24xlarge", - "r5dn.2xlarge" + "m1.small", + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "m6a.16xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" ] }, "ap-northeast-2": { "enum": [ - "c5.12xlarge", - "i2.xlarge", - "m5zn.6xlarge", - "c3.4xlarge", - "g4dn.12xlarge", - "p2.16xlarge", - "m4.16xlarge", - "m5d.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "r6i.24xlarge", - "x2idn.32xlarge", - "z1d.xlarge", - "z1d.3xlarge", - "c5n.9xlarge", - "x1e.4xlarge", - "i3en.12xlarge", - "m4.10xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "c6gd.2xlarge", - "c6gd.4xlarge", - "m6i.4xlarge", - "r5dn.12xlarge", - "r5ad.24xlarge", - "p3.2xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "m5ad.24xlarge", - "x1.32xlarge", - "p3.16xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5ad.4xlarge", - "r5d.24xlarge", + "x1e.2xlarge", "x2iedn.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "r3.4xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "c6gn.xlarge", - "m5a.16xlarge", - "r6g.2xlarge", - "z1d.2xlarge", - "i2.2xlarge", - "x2iedn.4xlarge", - "i4i.2xlarge", - "m6i.16xlarge", - "m5d.24xlarge", - "r5n.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "r6gd.8xlarge", - "m3.xlarge", - "m5d.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c5a.16xlarge", + "r5.24xlarge", + "x1.32xlarge", + "r5a.xlarge", + "r3.2xlarge", + "r5ad.xlarge", "m6g.16xlarge", - "r6i.xlarge", - "m5.16xlarge", - "m5d.xlarge", - "c6gn.2xlarge", - "c6g.16xlarge", - "m5ad.12xlarge", - "r4.4xlarge", + "c5d.9xlarge", + "c4.xlarge", + "d2.4xlarge", + "r3.8xlarge", + "c6gn.xlarge", + "c6i.4xlarge", "c3.large", - "m5ad.2xlarge", - "r6gd.4xlarge", - "c3.2xlarge", - "m6g.xlarge", - "i2.4xlarge", - "r6gd.xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c6gd.16xlarge", - "c5d.24xlarge", - "r5n.12xlarge", - "r5d.4xlarge", - "r5dn.24xlarge", - "z1d.6xlarge", - "r5a.4xlarge", - "m6g.8xlarge", + "r5b.2xlarge", + "r5ad.8xlarge", "r4.8xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "c6i.12xlarge", "m5a.2xlarge", - "c5.24xlarge", - "r5dn.xlarge", - "r5.16xlarge", - "r6i.8xlarge", - "c6gd.xlarge", - "c5d.12xlarge", - "m5zn.3xlarge", - "m4.large", - "r6gd.2xlarge", - "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "i4i.4xlarge", - "r5b.12xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "r5b.24xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "c3.xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "r5b.4xlarge", + "c6in.4xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", "i4i.32xlarge", - "r5ad.xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "r6id.4xlarge", + "m5zn.6xlarge", + "c5.2xlarge", "m5zn.2xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "x1e.8xlarge", - "i3.16xlarge", - "p2.xlarge", + "c7g.16xlarge", + "g3s.xlarge", + "r6gd.4xlarge", + "r5d.16xlarge", + "r5ad.24xlarge", + "c6i.24xlarge", + "m5a.16xlarge", "g4dn.xlarge", - "r5d.xlarge", - "r3.xlarge", - "d2.8xlarge", - "c5.4xlarge", - "r3.2xlarge", - "c6gn.8xlarge", - "x1.16xlarge", - "c4.2xlarge", - "g3.16xlarge", - "c6gd.12xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r5n.16xlarge", - "r6g.8xlarge", - "r4.xlarge", - "c5d.xlarge", - "r5a.16xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "c5a.2xlarge", + "p2.8xlarge", "r5a.12xlarge", + "c6g.4xlarge", + "m7g.2xlarge", + "r5b.xlarge", + "c5n.2xlarge", + "r6g.8xlarge", + "i4i.24xlarge", + "r6i.4xlarge", + "r5dn.12xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "i2.2xlarge", + "x2iedn.xlarge", + "m7g.16xlarge", "r4.16xlarge", - "r5d.2xlarge", - "g3.8xlarge", - "i3en.6xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "m5zn.12xlarge", - "m6i.24xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "m4.xlarge", + "r5dn.2xlarge", + "m6gd.16xlarge", + "m4.large", + "r6i.xlarge", + "m5d.24xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r5n.24xlarge", "m5.8xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "x2iedn.2xlarge", + "i2.8xlarge", + "c6gn.8xlarge", + "m4.10xlarge", "i4i.16xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "r5dn.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", + "g5.8xlarge", + "m3.medium", + "c5.xlarge", "m6i.12xlarge", - "c5n.xlarge", - "m5a.8xlarge", - "p2.8xlarge", - "m6g.4xlarge", - "r5dn.16xlarge", - "x1e.32xlarge", - "i4i.xlarge", - "m5ad.xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "m3.large", - "d2.xlarge", - "x1e.xlarge", + "r7g.12xlarge", "z1d.12xlarge", - "m3.medium", - "m6i.2xlarge", - "m6g.12xlarge", - "r5b.8xlarge", - "g3s.xlarge", - "r5b.16xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", + "r7g.16xlarge", + "c6gn.2xlarge", "r5.8xlarge", - "x2iedn.8xlarge", - "c5a.4xlarge", - "m5ad.8xlarge", + "g5.48xlarge", + "d2.2xlarge", "c5.9xlarge", - "c3.xlarge", - "r5b.xlarge", - "r5.4xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "p3.8xlarge", + "m5d.8xlarge", + "r6g.2xlarge", + "m3.2xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "g5.2xlarge", + "r5ad.4xlarge", + "c5.4xlarge", + "c5.24xlarge", + "c5d.2xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "r5.12xlarge", + "m6i.8xlarge", + "m5.xlarge", + "m5.4xlarge", + "z1d.2xlarge", + "c6in.xlarge", + "r5ad.16xlarge", + "c3.2xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "c7g.4xlarge", "i3en.3xlarge", - "x2iedn.16xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "x1e.2xlarge", - "c4.large", - "c6i.32xlarge", - "r5n.24xlarge", "m5.2xlarge", + "r5n.2xlarge", + "c5.18xlarge", + "m7g.xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "c5d.18xlarge", + "i3en.24xlarge", + "c7g.8xlarge", + "r7g.8xlarge", + "c6gn.4xlarge", + "c6i.xlarge", + "r7g.xlarge", + "c5n.18xlarge", + "p2.16xlarge", + "m5ad.2xlarge", "r6i.2xlarge", - "c3.8xlarge", - "m5.xlarge", + "z1d.6xlarge", + "c6i.12xlarge", + "i3.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "c6in.2xlarge", + "i3.4xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "c6g.16xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "m5.24xlarge", + "r5b.24xlarge", + "r6gd.2xlarge", + "r5n.12xlarge", + "r4.xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "c6gd.4xlarge", + "g4dn.16xlarge", + "r5dn.24xlarge", + "c3.4xlarge", + "r6id.16xlarge", + "m4.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5zn.3xlarge", + "g5.xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "r5b.16xlarge", + "m4.xlarge", "r5n.8xlarge", - "c6gn.4xlarge", - "c5n.2xlarge", - "m5d.8xlarge", - "r5b.4xlarge", - "x1e.16xlarge", - "r5ad.12xlarge", - "r5n.xlarge", + "m5ad.24xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "i3.8xlarge", + "i4i.2xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "m3.large", "m5ad.4xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r6id.8xlarge", "g3.4xlarge", - "c6gd.8xlarge", + "i4i.12xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r5dn.xlarge", + "r5.16xlarge", + "m6i.2xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5.4xlarge", + "c7g.xlarge", + "r5b.12xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "c6gd.xlarge", "m5zn.xlarge", - "c6gn.16xlarge", - "r5d.8xlarge", - "i2.8xlarge", - "i3en.24xlarge", - "m3.2xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "c5d.9xlarge", - "m6i.xlarge", + "x1e.16xlarge", + "c5a.24xlarge", + "r6id.xlarge", + "r5ad.12xlarge", + "r5n.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r6id.24xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "z1d.3xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "g5.24xlarge", + "c5.12xlarge", "r6i.32xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r6gd.12xlarge", - "i3en.xlarge", - "i4i.8xlarge", "r4.2xlarge", - "c6g.4xlarge", - "r5b.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "i3en.12xlarge", + "r6id.32xlarge", + "m6i.xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "m6i.4xlarge", + "g5.16xlarge", + "r6i.12xlarge", + "p3.2xlarge", + "r6gd.8xlarge", + "i2.4xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "r5b.8xlarge", + "m6g.4xlarge", + "m7g.12xlarge", + "c6i.32xlarge", + "r5n.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "i3en.6xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "g3.16xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "m5d.12xlarge", + "r5a.8xlarge", + "r5n.16xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "x1e.4xlarge", + "p2.xlarge", + "c6g.xlarge", + "c6gd.8xlarge", + "c4.4xlarge", "g4dn.8xlarge", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge", - "r5dn.2xlarge", - "m6i.8xlarge" + "m6g.8xlarge", + "m7g.4xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" ] }, "ap-northeast-3": { "enum": [ - "c5.12xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5d.16xlarge", - "m5.24xlarge", - "x2idn.16xlarge", - "r6i.24xlarge", - "x2idn.32xlarge", - "x1e.4xlarge", - "c5n.9xlarge", - "i3en.12xlarge", + "c6gn.8xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "x1e.2xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", "m6gd.2xlarge", - "c6gd.2xlarge", - "c6gd.4xlarge", - "m6i.4xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", "x2iedn.24xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "c6gn.xlarge", - "r6g.2xlarge", - "x2iedn.4xlarge", - "m6i.16xlarge", - "m5d.24xlarge", - "c6g.8xlarge", - "r6gd.8xlarge", - "m5d.12xlarge", - "m6gd.xlarge", - "r6i.xlarge", - "m5d.xlarge", "c6g.16xlarge", - "c6gn.2xlarge", - "m5.16xlarge", - "r4.4xlarge", - "r6gd.4xlarge", - "r6gd.xlarge", - "m5d.2xlarge", - "r5.24xlarge", - "c6gd.16xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r4.8xlarge", + "d2.xlarge", "g4dn.2xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r6i.24xlarge", "m4.2xlarge", - "c6i.12xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c6gd.xlarge", - "c5d.12xlarge", - "r6i.8xlarge", - "m4.large", + "r6gd.16xlarge", + "r5.24xlarge", + "x1.32xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "x1e.32xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", "r6gd.2xlarge", - "r5.12xlarge", - "c6i.24xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "r5d.xlarge", - "i3.16xlarge", - "x1e.8xlarge", - "g4dn.xlarge", - "c5.4xlarge", - "d2.8xlarge", - "c4.2xlarge", - "x1.16xlarge", - "c6i.8xlarge", - "c6gn.8xlarge", - "c6gd.12xlarge", - "c5.2xlarge", - "c4.4xlarge", - "m6gd.8xlarge", - "m5.12xlarge", - "r6g.8xlarge", + "c5.12xlarge", + "r6i.32xlarge", "r4.xlarge", - "c5d.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "m6gd.12xlarge", - "c6i.4xlarge", - "i3en.6xlarge", - "m6i.24xlarge", - "x2iedn.32xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "m6gd.16xlarge", - "m4.xlarge", - "m5.8xlarge", - "r6i.16xlarge", + "r4.2xlarge", "d2.2xlarge", + "c5.9xlarge", + "c4.xlarge", "d2.4xlarge", - "x2iedn.2xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "c5n.4xlarge", + "r6g.12xlarge", + "c6gd.4xlarge", + "c5n.9xlarge", + "r4.4xlarge", + "g4dn.16xlarge", + "c6gn.xlarge", "m4.4xlarge", - "r5.2xlarge", - "m6i.12xlarge", - "c5n.xlarge", - "x1e.32xlarge", + "i3en.12xlarge", + "m6i.16xlarge", "c6i.16xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "m4.16xlarge", + "x1.16xlarge", "m5d.4xlarge", - "d2.xlarge", - "x1e.xlarge", - "m6i.2xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "x2iedn.8xlarge", - "c5.9xlarge", - "m6gd.4xlarge", - "r5.4xlarge", - "i3en.3xlarge", + "r6g.xlarge", + "m5d.8xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "c5n.4xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m4.xlarge", + "m5.16xlarge", + "r4.8xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "c5.24xlarge", + "m6i.4xlarge", + "r6gd.12xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "c6gd.2xlarge", + "m6gd.12xlarge", + "c5d.4xlarge", + "r6gd.8xlarge", + "i4i.8xlarge", "x2iedn.16xlarge", - "x1e.2xlarge", - "c6i.32xlarge", + "x1e.8xlarge", + "c6gd.16xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", "c4.large", - "m5.2xlarge", - "r6i.2xlarge", + "i3en.2xlarge", + "r6gd.xlarge", + "x2idn.16xlarge", + "i3.xlarge", + "r5.2xlarge", + "r5.12xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", "m5.xlarge", - "c6gn.4xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6i.32xlarge", + "r6gd.4xlarge", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "c4.2xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m6gd.4xlarge", + "g4dn.xlarge", + "r5d.2xlarge", + "m5.2xlarge", + "r5.16xlarge", + "c5n.xlarge", + "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "m6g.12xlarge", + "i4i.xlarge", + "c5d.12xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "r5.4xlarge", + "m5d.12xlarge", "c5n.2xlarge", - "m5d.8xlarge", - "x1e.16xlarge", - "c6gd.8xlarge", - "c6gn.16xlarge", - "r5d.8xlarge", - "m6i.xlarge", - "c5d.9xlarge", + "m6i.24xlarge", + "m6gd.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", "i3en.24xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "r6i.32xlarge", + "c6gn.4xlarge", + "c6i.xlarge", + "i4i.24xlarge", + "m5d.2xlarge", "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r6gd.12xlarge", - "i3en.xlarge", - "r4.2xlarge", - "c6g.4xlarge", + "c6gd.xlarge", + "c5n.18xlarge", + "c5d.24xlarge", + "x2idn.24xlarge", + "x1e.16xlarge", + "x1e.4xlarge", + "r4.16xlarge", + "x2iedn.xlarge", + "r6i.2xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "c6gd.8xlarge", + "c4.4xlarge", + "m4.large", "g4dn.8xlarge", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge", - "m6i.8xlarge" + "r6i.xlarge", + "m5d.24xlarge", + "m6g.8xlarge", + "c6i.12xlarge", + "i3.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "g4dn.12xlarge" ] }, "ap-south-1": { "enum": [ - "c5.12xlarge", - "i2.xlarge", - "g5.12xlarge", - "c3.4xlarge", - "g4dn.12xlarge", - "p2.16xlarge", - "m4.16xlarge", - "g5.8xlarge", - "m5d.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "r6i.24xlarge", - "z1d.xlarge", - "r6a.8xlarge", - "r6a.4xlarge", - "z1d.3xlarge", - "m4.10xlarge", - "c5n.9xlarge", - "i3en.12xlarge", - "m6gd.2xlarge", + "x1e.2xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c5a.16xlarge", + "r5.24xlarge", + "x1.32xlarge", + "c6a.12xlarge", "r5a.xlarge", - "x1e.4xlarge", - "m5a.24xlarge", - "c6gd.2xlarge", + "r3.2xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", "r6a.12xlarge", - "r5ad.24xlarge", - "c6gd.4xlarge", - "m6i.4xlarge", - "g5.2xlarge", - "g5.4xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "m5ad.24xlarge", - "x1.32xlarge", - "m6a.8xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5ad.4xlarge", - "r5d.24xlarge", - "x2iedn.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "r3.4xlarge", - "m5a.16xlarge", - "i3en.2xlarge", + "c4.xlarge", + "d2.4xlarge", + "r3.8xlarge", "c6gn.xlarge", - "r6a.32xlarge", - "r6gd.16xlarge", - "r6g.2xlarge", - "z1d.2xlarge", - "i2.2xlarge", - "x2iedn.4xlarge", - "r5n.2xlarge", - "m6i.16xlarge", - "m5d.24xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "r6gd.8xlarge", - "m3.xlarge", - "m6a.4xlarge", - "m6g.16xlarge", - "m6gd.xlarge", - "r6i.xlarge", - "c6g.16xlarge", - "m5d.xlarge", - "c6gn.2xlarge", - "m5ad.12xlarge", - "m5.16xlarge", - "m6a.24xlarge", - "r4.4xlarge", + "r7gd.16xlarge", + "c6i.4xlarge", "c3.large", - "m5ad.2xlarge", - "d3.xlarge", - "r6gd.4xlarge", - "c3.2xlarge", - "m6g.xlarge", - "i2.4xlarge", - "r6gd.xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c6gd.16xlarge", - "c5d.24xlarge", - "r6a.2xlarge", - "r5n.12xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "z1d.6xlarge", - "m6g.8xlarge", - "m6a.xlarge", + "c7gd.12xlarge", + "r5ad.8xlarge", + "is4gen.4xlarge", "r4.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "c6i.12xlarge", + "m6a.32xlarge", "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c6gd.xlarge", - "c5d.12xlarge", - "r6i.8xlarge", - "m4.large", - "r5.12xlarge", - "r6gd.2xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "r5ad.xlarge", - "r6a.24xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "r5d.xlarge", - "r5d.12xlarge", + "r5a.4xlarge", + "r6a.4xlarge", + "r6g.4xlarge", + "c3.xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "m5a.8xlarge", + "c6in.4xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", "x1e.8xlarge", - "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "c5d.18xlarge", - "r3.xlarge", - "d2.8xlarge", - "r3.2xlarge", - "c5.4xlarge", + "i4i.32xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "r6id.4xlarge", "c5.2xlarge", - "c6gn.8xlarge", - "x1.16xlarge", - "c6gd.12xlarge", - "c4.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "m6gd.8xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r5n.16xlarge", + "c7g.16xlarge", + "r6gd.4xlarge", + "c6a.xlarge", + "r5d.16xlarge", + "r5ad.24xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "c5a.2xlarge", + "p2.8xlarge", + "r5a.12xlarge", + "c6g.4xlarge", + "m7g.2xlarge", + "c5n.2xlarge", "r6g.8xlarge", - "r5a.16xlarge", - "r4.xlarge", - "c5d.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "d3.8xlarge", - "c6i.2xlarge", + "i4i.24xlarge", + "r6i.4xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "m6gd.12xlarge", - "i3en.6xlarge", - "c6i.4xlarge", - "m5d.12xlarge", - "m6g.2xlarge", - "m6i.24xlarge", - "m6a.32xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "d3.2xlarge", - "g5.48xlarge", - "m6i.32xlarge", + "i2.2xlarge", + "m7g.16xlarge", + "x2iedn.xlarge", "m6gd.16xlarge", - "m4.xlarge", - "m5.8xlarge", - "m6a.2xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "x2iedn.2xlarge", - "c5n.18xlarge", - "i3.4xlarge", + "m4.large", + "r6i.xlarge", + "m5d.24xlarge", + "i3en.xlarge", "r5.xlarge", - "c5n.4xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", + "d2.8xlarge", + "d3.2xlarge", + "r5n.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "m6a.24xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "m3.medium", + "c5.xlarge", "m6i.12xlarge", - "m6a.48xlarge", - "c5n.xlarge", - "m5a.8xlarge", - "p2.8xlarge", - "m6g.4xlarge", - "x1e.32xlarge", - "m5ad.xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "m3.large", - "d2.xlarge", - "x1e.xlarge", + "is4gen.xlarge", + "r7g.12xlarge", "z1d.12xlarge", - "m3.medium", - "m6i.2xlarge", - "m6g.12xlarge", - "g5.xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", + "r7g.16xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", "r5.8xlarge", - "x2iedn.8xlarge", - "r6a.48xlarge", - "c5a.4xlarge", - "m5ad.8xlarge", + "g5.48xlarge", + "d2.2xlarge", "c5.9xlarge", - "m6gd.4xlarge", - "c3.xlarge", - "r5.4xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "m7gd.2xlarge", + "m5d.8xlarge", + "c6a.16xlarge", + "c7gd.16xlarge", + "r6g.2xlarge", + "m3.2xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "g5.2xlarge", + "r5ad.4xlarge", + "c5.4xlarge", + "d3.4xlarge", + "c5.24xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", + "c5d.2xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", + "m6i.8xlarge", + "m5.xlarge", + "m5.4xlarge", + "z1d.2xlarge", + "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "c3.2xlarge", + "m6a.8xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "c7g.4xlarge", + "r6a.16xlarge", "i3en.3xlarge", - "x2iedn.16xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "x1e.2xlarge", - "r5n.24xlarge", - "c4.large", - "c6i.32xlarge", "m5.2xlarge", - "r6i.2xlarge", - "c3.8xlarge", - "m5.xlarge", - "r5n.8xlarge", + "r5n.2xlarge", + "m6a.xlarge", + "c5.18xlarge", + "m7g.xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "c5d.18xlarge", + "i3en.24xlarge", + "c6i.xlarge", + "r7g.8xlarge", "c6gn.4xlarge", - "c5n.2xlarge", - "m5d.8xlarge", + "c7g.8xlarge", + "m6a.4xlarge", + "r7g.xlarge", + "c5n.18xlarge", + "p2.16xlarge", + "m5ad.2xlarge", + "c7gd.xlarge", + "r6i.2xlarge", + "c6a.48xlarge", + "z1d.6xlarge", + "c6i.12xlarge", + "i3.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "c6in.2xlarge", + "i3.4xlarge", + "m6gd.2xlarge", + "c6g.16xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "m5.24xlarge", + "r6gd.2xlarge", + "r5n.12xlarge", + "r4.xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "c6gd.4xlarge", + "c5n.9xlarge", "r6a.xlarge", - "x1e.16xlarge", - "r5n.xlarge", - "r5ad.12xlarge", - "m5ad.4xlarge", - "c6gd.8xlarge", - "r6a.16xlarge", - "c6gn.16xlarge", - "r5d.8xlarge", - "i2.8xlarge", - "c5d.9xlarge", - "i3en.24xlarge", - "m3.2xlarge", - "r6i.12xlarge", - "m6i.xlarge", - "x2idn.24xlarge", - "r6i.32xlarge", - "c5a.12xlarge", - "r6i.4xlarge", "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r6gd.12xlarge", - "i3en.xlarge", - "m6a.16xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "g4dn.8xlarge", - "g5.16xlarge", - "c6g.2xlarge", + "c3.4xlarge", + "r6id.16xlarge", + "m4.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", "r6g.xlarge", - "c5.18xlarge", + "g5.xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "m3.large", + "c7gd.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "r6a.32xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r6id.8xlarge", + "i4i.12xlarge", + "r7gd.4xlarge", + "r7gd.2xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r5.16xlarge", + "m6i.2xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5.4xlarge", + "c7g.xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "c6gd.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "x1e.16xlarge", + "is4gen.8xlarge", + "c5a.24xlarge", + "r6id.xlarge", + "r5ad.12xlarge", + "r5n.xlarge", + "m5ad.8xlarge", + "i2.xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", + "r6id.24xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r6a.48xlarge", + "z1d.3xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "x1e.32xlarge", "g5.24xlarge", - "m6i.8xlarge" + "c5.12xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "i3en.12xlarge", + "r6id.32xlarge", + "m6i.xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "m5.16xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "m6i.4xlarge", + "g5.16xlarge", + "c7gd.2xlarge", + "r6i.12xlarge", + "r6gd.8xlarge", + "i2.4xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "m6g.4xlarge", + "c6a.32xlarge", + "m7g.12xlarge", + "d3.8xlarge", + "c6i.32xlarge", + "r5n.4xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", + "i3en.6xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "r5a.8xlarge", + "m5d.12xlarge", + "r5n.16xlarge", + "d3.xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "x1e.4xlarge", + "r6a.24xlarge", + "p2.xlarge", + "c6g.xlarge", + "c6gd.8xlarge", + "c4.4xlarge", + "g4dn.8xlarge", + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "m6a.16xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" ] }, "ap-south-2": { "enum": [ - "c5.12xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "m6gd.2xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r7g.12xlarge", + "r6i.24xlarge", + "r7g.16xlarge", + "r5.24xlarge", "m5.24xlarge", - "m5d.16xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "c5.9xlarge", + "r6g.12xlarge", + "r7g.2xlarge", "i3en.12xlarge", - "m6gd.2xlarge", - "i3.xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "i3en.2xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5d.8xlarge", "r6g.2xlarge", - "m5d.24xlarge", - "c6g.8xlarge", - "m6gd.xlarge", - "m6g.16xlarge", - "m5d.12xlarge", - "c6g.16xlarge", + "r5d.24xlarge", "m5.16xlarge", - "m5d.xlarge", + "m6a.32xlarge", + "x2iedn.2xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", "m6g.xlarge", - "m5d.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "m6g.8xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "r6g.16xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "i3.16xlarge", + "c6i.2xlarge", "c5.4xlarge", - "c5.2xlarge", - "m5.12xlarge", - "m6gd.8xlarge", - "r6g.8xlarge", - "c5d.xlarge", + "c5.24xlarge", + "m6i.4xlarge", "c5d.2xlarge", - "c6g.12xlarge", - "r5d.2xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", "m6gd.12xlarge", - "i3en.6xlarge", - "m6g.2xlarge", - "m5.4xlarge", - "m6gd.16xlarge", - "m5.8xlarge", - "r5.xlarge", - "i3.4xlarge", + "c5d.4xlarge", + "c7g.2xlarge", + "i4i.8xlarge", + "x2iedn.16xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "i3en.2xlarge", + "r5.12xlarge", + "x2idn.16xlarge", + "i3.xlarge", "r5.2xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", "m6g.4xlarge", - "m5d.4xlarge", - "m6g.12xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5.9xlarge", - "m6gd.4xlarge", - "r5.4xlarge", - "i3en.3xlarge", - "m5.2xlarge", "m5.xlarge", - "m5d.8xlarge", - "r5d.8xlarge", - "c5d.9xlarge", - "i3en.24xlarge", + "m5.4xlarge", + "c5.2xlarge", + "m7g.12xlarge", + "c6i.32xlarge", + "m6a.8xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", "r5d.16xlarge", - "r6g.4xlarge", - "i3en.xlarge", + "c7g.4xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m6gd.4xlarge", + "m6a.12xlarge", + "m5.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "m6g.12xlarge", + "i4i.xlarge", + "c5d.12xlarge", + "m6a.xlarge", + "c5.18xlarge", "c6g.4xlarge", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge" - ] - }, - "ap-southeast-1": { - "enum": [ - "r6i.24xlarge", - "m6gd.2xlarge", - "x1.32xlarge", + "r5.4xlarge", + "m5d.12xlarge", + "m7g.2xlarge", + "m7g.xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "c7g.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "m1.medium", - "m5a.xlarge", - "m5a.16xlarge", - "c6gn.xlarge", - "i2.2xlarge", - "m5d.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "m3.xlarge", + "i3en.24xlarge", + "c7g.8xlarge", + "r7g.8xlarge", + "i4i.24xlarge", "m6a.4xlarge", - "m5d.12xlarge", + "m5d.2xlarge", + "r6i.4xlarge", + "r7g.xlarge", + "c5d.24xlarge", + "m6a.2xlarge", + "x2idn.24xlarge", + "m7g.16xlarge", + "x2iedn.xlarge", + "r6i.2xlarge", + "c6g.xlarge", + "m6gd.16xlarge", "r6i.xlarge", + "m5d.24xlarge", + "c6i.12xlarge", + "m6g.8xlarge", + "m6a.48xlarge", + "i3.16xlarge", + "m7g.4xlarge", + "m6a.16xlarge", + "c6i.8xlarge", "m5d.xlarge", - "c6gn.2xlarge", - "r4.4xlarge", - "d3.xlarge", - "c5ad.24xlarge", - "m5a.4xlarge", + "i3en.xlarge", + "r5.xlarge", + "r6i.16xlarge", + "m5.8xlarge", + "m6a.24xlarge", + "r7g.4xlarge" + ] + }, + "ap-southeast-1": { + "enum": [ + "x1e.2xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c5a.16xlarge", "r5.24xlarge", - "r5dn.24xlarge", - "m6g.8xlarge", - "m1.small", - "c5.24xlarge", - "r5.16xlarge", - "m4.large", - "c6i.24xlarge", - "r6g.16xlarge", + "x1.32xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "r3.2xlarge", "r5ad.xlarge", + "m6g.16xlarge", + "r6a.12xlarge", + "c5d.9xlarge", + "m5dn.4xlarge", + "c4.xlarge", + "d3en.12xlarge", + "d2.4xlarge", + "r3.8xlarge", + "c6gn.xlarge", + "r7gd.16xlarge", + "m6idn.4xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "c3.large", + "r5b.2xlarge", + "c7gd.12xlarge", "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", + "is4gen.4xlarge", + "m6a.32xlarge", + "r4.8xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6a.4xlarge", + "r6g.4xlarge", + "r6idn.32xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c3.xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "m5d.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "c5ad.xlarge", + "r5b.4xlarge", + "c6in.4xlarge", + "c5ad.2xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", "x1e.8xlarge", - "d2.8xlarge", - "c4.2xlarge", - "c6gd.12xlarge", + "hs1.8xlarge", + "i4i.32xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "r6id.4xlarge", + "m5zn.6xlarge", + "c5.2xlarge", + "c1.medium", + "m5zn.2xlarge", + "c7g.16xlarge", + "r6gd.4xlarge", + "c5ad.12xlarge", + "c6a.xlarge", + "r6in.12xlarge", + "r5ad.24xlarge", + "r5d.16xlarge", + "r6idn.8xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "c5a.2xlarge", + "cr1.8xlarge", + "r5b.xlarge", + "r5a.12xlarge", + "c6g.4xlarge", + "m7g.2xlarge", + "p2.8xlarge", + "c5n.2xlarge", + "m5dn.24xlarge", "r6g.8xlarge", - "c5ad.2xlarge", - "c6g.12xlarge", + "im4gn.xlarge", + "i4i.24xlarge", + "r6i.4xlarge", + "r5dn.12xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "r6in.4xlarge", "r4.16xlarge", - "r5d.2xlarge", - "cg1.4xlarge", - "m5zn.12xlarge", - "m5n.16xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.8xlarge", - "d2.2xlarge", - "x2iedn.2xlarge", - "i3.4xlarge", + "i2.2xlarge", + "m7g.16xlarge", + "r6idn.xlarge", + "x2iedn.xlarge", + "r5dn.2xlarge", + "m6gd.16xlarge", + "c5ad.24xlarge", + "m4.large", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", + "m1.large", + "d2.8xlarge", "r5.xlarge", - "c5n.xlarge", - "r5dn.16xlarge", + "d3.2xlarge", + "r5n.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "m6a.24xlarge", + "im4gn.8xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "c1.xlarge", + "m3.medium", + "d3en.8xlarge", + "c5.xlarge", + "m6i.12xlarge", "is4gen.xlarge", + "c5ad.8xlarge", + "r7g.12xlarge", + "z1d.12xlarge", + "m1.medium", + "r7g.16xlarge", + "r6in.32xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", + "r5.8xlarge", + "im4gn.16xlarge", + "d2.2xlarge", + "c5.9xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "p3.8xlarge", "c6i.16xlarge", - "r5b.8xlarge", - "x2iedn.xlarge", - "r5b.xlarge", - "x1e.2xlarge", - "m5n.4xlarge", - "m5n.24xlarge", - "m5.xlarge", - "r5b.4xlarge", - "r5ad.12xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", + "m6i.16xlarge", + "m6in.4xlarge", + "m5n.2xlarge", + "m7gd.2xlarge", + "m5d.8xlarge", + "c6a.16xlarge", + "r6g.2xlarge", + "c7gd.16xlarge", + "m6in.24xlarge", "m3.2xlarge", - "m5dn.8xlarge", - "r6gd.12xlarge", - "r6g.xlarge", - "im4gn.2xlarge", - "c3.4xlarge", - "m5n.12xlarge", - "m5d.16xlarge", - "c5ad.4xlarge", - "z1d.3xlarge", - "x1e.4xlarge", - "i3en.12xlarge", - "c6gd.4xlarge", - "r5ad.24xlarge", - "m5dn.xlarge", - "r5dn.12xlarge", - "c6gn.12xlarge", - "m6a.8xlarge", - "m5ad.24xlarge", - "i3.xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", "r5ad.4xlarge", - "i3.2xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "r6g.2xlarge", - "r5n.2xlarge", - "i4i.2xlarge", - "r6gd.8xlarge", - "m6g.16xlarge", - "m5ad.12xlarge", - "m5.16xlarge", - "m6a.24xlarge", - "m5n.xlarge", - "m6g.xlarge", - "m5d.2xlarge", - "is4gen.8xlarge", + "c5.4xlarge", + "c5.24xlarge", + "d3.4xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", + "c5d.2xlarge", + "d3en.xlarge", + "cg1.4xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "m5n.24xlarge", + "m5a.xlarge", "c6gd.16xlarge", - "r5n.12xlarge", - "m5dn.4xlarge", - "r4.8xlarge", - "c6i.12xlarge", - "r6i.8xlarge", - "r5b.12xlarge", - "c4.8xlarge", - "i4i.32xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r3.2xlarge", - "x1.16xlarge", - "g3.16xlarge", - "r5n.16xlarge", - "r5a.16xlarge", - "r5a.12xlarge", - "m6g.2xlarge", - "m6i.24xlarge", - "m6a.32xlarge", - "d3.2xlarge", - "m6a.2xlarge", - "c5n.18xlarge", - "cr1.8xlarge", - "m6i.12xlarge", - "m5a.8xlarge", - "m5dn.24xlarge", - "x1e.32xlarge", - "m5ad.xlarge", - "m3.large", - "z1d.12xlarge", - "m6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "m6gd.4xlarge", - "r5.4xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c4.large", - "m5.2xlarge", - "c3.8xlarge", - "c5n.2xlarge", - "c6gn.16xlarge", - "m2.xlarge", - "i2.8xlarge", - "r5d.16xlarge", - "m5dn.12xlarge", - "r6g.4xlarge", - "i4i.8xlarge", - "m6a.16xlarge", - "r5b.2xlarge", - "m5n.2xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", + "r6in.8xlarge", "m6i.8xlarge", - "i2.xlarge", - "p2.16xlarge", - "z1d.xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "x2iedn.24xlarge", - "r3.4xlarge", - "g2.2xlarge", - "c5ad.12xlarge", + "m5.xlarge", + "m5.4xlarge", "z1d.2xlarge", - "x2iedn.4xlarge", + "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "c3.2xlarge", + "m6a.8xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m6idn.2xlarge", + "c7g.4xlarge", + "r6a.16xlarge", + "i3en.3xlarge", + "m5.2xlarge", + "r5n.2xlarge", + "m6a.xlarge", + "c5.18xlarge", + "m5dn.16xlarge", + "m7g.xlarge", "m6gd.xlarge", + "m6i.24xlarge", + "c5d.18xlarge", + "m6idn.8xlarge", + "c6i.xlarge", + "i3en.24xlarge", + "c7g.8xlarge", + "c6gn.4xlarge", + "r7g.8xlarge", + "m6a.4xlarge", + "r7g.xlarge", + "c5n.18xlarge", + "p2.16xlarge", "m5ad.2xlarge", - "r6gd.4xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6a.xlarge", - "m5a.2xlarge", - "r5dn.xlarge", - "m5zn.3xlarge", - "c5d.12xlarge", - "m5a.12xlarge", - "i4i.4xlarge", - "r5b.24xlarge", - "m5zn.2xlarge", + "m2.xlarge", + "m5dn.12xlarge", + "c7gd.xlarge", + "r6i.2xlarge", + "c6a.48xlarge", + "z1d.6xlarge", + "c6i.12xlarge", "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "c5.2xlarge", "c6i.8xlarge", - "m5.12xlarge", - "im4gn.16xlarge", - "c5d.2xlarge", - "g3.8xlarge", - "m5dn.16xlarge", - "hi1.4xlarge", - "m5n.8xlarge", - "m2.4xlarge", - "m5.4xlarge", - "c5ad.16xlarge", - "i4i.16xlarge", - "r5dn.4xlarge", - "m6a.48xlarge", - "p2.8xlarge", - "m6g.4xlarge", - "m5d.4xlarge", - "cc2.8xlarge", - "c1.medium", - "x1e.xlarge", - "m6i.2xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "r6in.16xlarge", + "m5dn.2xlarge", + "c6in.2xlarge", + "i3.4xlarge", + "r6in.xlarge", + "m6in.2xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "m6in.32xlarge", + "c6g.16xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "m5.24xlarge", + "r5b.24xlarge", + "r6in.2xlarge", + "r6gd.2xlarge", + "r5n.12xlarge", + "r4.xlarge", + "r6idn.4xlarge", + "r6a.xlarge", + "c6gd.4xlarge", + "c5n.9xlarge", "r6g.12xlarge", - "c3.xlarge", - "c5a.24xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", - "r5n.xlarge", - "r5d.8xlarge", - "m6i.xlarge", - "r6i.32xlarge", + "m6idn.16xlarge", "g4dn.16xlarge", - "c5ad.xlarge", - "c4.xlarge", - "im4gn.4xlarge", - "r4.2xlarge", - "is4gen.4xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "m1.large", - "c5.12xlarge", - "m5zn.6xlarge", - "g4dn.12xlarge", + "r5dn.24xlarge", + "c3.4xlarge", + "m2.4xlarge", + "r6id.16xlarge", "m4.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "m4.10xlarge", - "c5n.9xlarge", - "t1.micro", - "im4gn.8xlarge", - "c6gd.2xlarge", - "m6i.4xlarge", - "p3.2xlarge", - "c1.xlarge", - "p3.16xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "c5a.xlarge", - "m1.xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.16xlarge", - "c3.large", - "c3.2xlarge", - "i2.4xlarge", - "r6gd.xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", "cc1.4xlarge", - "c5d.24xlarge", - "z1d.6xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "c6gd.xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "im4gn.xlarge", - "c4.4xlarge", - "m2.2xlarge", - "m6gd.8xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r4.xlarge", - "c5d.xlarge", - "d3.8xlarge", - "c6i.2xlarge", + "m5zn.3xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "m5n.xlarge", + "r5b.16xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", "m6gd.12xlarge", - "i3en.6xlarge", - "c6i.4xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "m3.large", + "c5ad.4xlarge", + "c7gd.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "r5a.2xlarge", + "r6a.32xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r6idn.12xlarge", + "r6id.8xlarge", + "i4i.12xlarge", + "g3.4xlarge", + "r7gd.4xlarge", + "r6idn.2xlarge", + "r7gd.2xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r6in.24xlarge", + "r5dn.xlarge", + "r5.16xlarge", + "m6i.2xlarge", "m6i.32xlarge", - "hs1.8xlarge", - "m6gd.16xlarge", - "m4.xlarge", + "c5a.xlarge", + "r5.4xlarge", + "m5dn.8xlarge", + "c7g.xlarge", + "r5b.12xlarge", + "m5n.16xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "c6gd.xlarge", + "m5zn.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "m2.2xlarge", + "x1e.16xlarge", + "is4gen.8xlarge", + "c5a.24xlarge", + "m5n.4xlarge", + "r6id.xlarge", + "r5ad.12xlarge", + "r5n.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", "r6i.16xlarge", - "d2.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "i4i.xlarge", + "r6id.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", + "r6id.24xlarge", + "im4gn.4xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", "d2.xlarge", - "m3.medium", - "r5b.16xlarge", - "is4gen.2xlarge", - "x2iedn.8xlarge", - "m5ad.8xlarge", - "c5.9xlarge", - "c5ad.8xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "r5n.24xlarge", - "c6i.32xlarge", - "x1e.16xlarge", - "m5ad.4xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", + "g4dn.2xlarge", + "r6a.48xlarge", + "c6g.12xlarge", + "z1d.3xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "r6id.32xlarge", + "i3en.12xlarge", + "d3en.4xlarge", + "m6i.xlarge", + "m5n.8xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "m5dn.xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", + "hi1.4xlarge", + "m6i.4xlarge", + "m6idn.xlarge", + "c7gd.2xlarge", "r6i.12xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", + "p3.2xlarge", + "r6gd.8xlarge", + "i2.4xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "r5b.8xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "m5n.12xlarge", + "c6a.32xlarge", + "m7g.12xlarge", + "d3.8xlarge", + "c6i.32xlarge", + "r6idn.24xlarge", + "r5n.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", + "i3en.6xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "g3.16xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "d3en.2xlarge", + "r5a.8xlarge", + "m5d.12xlarge", + "r5n.16xlarge", + "d3.xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "x1e.4xlarge", + "r6a.24xlarge", + "r6idn.16xlarge", + "p2.xlarge", + "c6g.xlarge", + "t1.micro", + "c6gd.8xlarge", + "d3en.6xlarge", + "c4.4xlarge", + "m1.xlarge", "g4dn.8xlarge", - "m5dn.2xlarge", - "r5dn.2xlarge" + "m1.small", + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "c5ad.16xlarge", + "m6a.16xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" ] }, "ap-southeast-2": { "enum": [ - "r6i.24xlarge", - "m6gd.2xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "m1.medium", - "m5a.xlarge", - "m5a.16xlarge", - "c6gn.xlarge", - "i2.2xlarge", - "m5d.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "m3.xlarge", - "m6a.4xlarge", - "m5d.12xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6gn.2xlarge", - "r4.4xlarge", - "d3.xlarge", - "c5ad.24xlarge", - "m5a.4xlarge", + "x1e.2xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c5a.16xlarge", "r5.24xlarge", - "r5dn.24xlarge", - "m6g.8xlarge", - "m1.small", - "c5.24xlarge", - "r5.16xlarge", - "m4.large", - "c6i.24xlarge", - "r6g.16xlarge", + "x1.32xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "r3.2xlarge", "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6a.12xlarge", + "c4.xlarge", + "d2.4xlarge", + "r3.8xlarge", + "c6gn.xlarge", + "r7gd.16xlarge", + "m6idn.4xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "c3.large", + "r5b.2xlarge", + "c7gd.12xlarge", "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", - "x1e.8xlarge", - "d2.8xlarge", - "c4.2xlarge", - "c6gd.12xlarge", - "r6g.8xlarge", - "c5ad.2xlarge", - "c6g.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "cg1.4xlarge", - "m5zn.12xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.8xlarge", - "d2.2xlarge", - "x2iedn.2xlarge", - "r5.xlarge", - "i3.4xlarge", - "c5n.xlarge", - "is4gen.xlarge", - "r5dn.16xlarge", - "c6i.16xlarge", - "r5b.8xlarge", - "x2iedn.xlarge", - "r5b.xlarge", - "x1e.2xlarge", - "m5.xlarge", - "r5b.4xlarge", - "r5ad.12xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", - "m3.2xlarge", + "m6id.xlarge", + "is4gen.4xlarge", + "m6a.32xlarge", + "r4.8xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6a.4xlarge", + "r6g.4xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c3.xlarge", + "c5a.4xlarge", "r6gd.12xlarge", - "r6g.xlarge", - "r6id.24xlarge", - "im4gn.2xlarge", - "c3.4xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", "m5d.16xlarge", - "c5ad.4xlarge", - "z1d.3xlarge", - "x1e.4xlarge", - "i3en.12xlarge", - "c6gd.4xlarge", - "r5ad.24xlarge", - "r5dn.12xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "m6a.8xlarge", - "m5ad.24xlarge", - "r5ad.4xlarge", - "i3.2xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "r6g.2xlarge", - "r5n.2xlarge", - "i4i.2xlarge", - "r6gd.8xlarge", - "m6g.16xlarge", - "m5ad.12xlarge", - "m5.16xlarge", - "m6a.24xlarge", - "m6g.xlarge", - "m5d.2xlarge", - "is4gen.8xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", - "r4.8xlarge", - "c6i.12xlarge", - "r6i.8xlarge", - "r5b.12xlarge", - "c4.8xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "c5ad.xlarge", + "r5b.4xlarge", + "c6in.4xlarge", + "c5ad.2xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "hs1.8xlarge", "i4i.32xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r3.2xlarge", - "x1.16xlarge", - "g3.16xlarge", - "r5n.16xlarge", - "r5a.16xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "r6id.4xlarge", + "m5zn.6xlarge", + "c5.2xlarge", + "c1.medium", + "m5zn.2xlarge", + "c7g.16xlarge", + "g3s.xlarge", + "r6gd.4xlarge", + "c5ad.12xlarge", + "c6a.xlarge", + "r5d.16xlarge", + "r5ad.24xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "c5a.2xlarge", + "cr1.8xlarge", + "p2.8xlarge", "r5a.12xlarge", - "m6g.2xlarge", - "m6i.24xlarge", - "m6a.32xlarge", + "c6g.4xlarge", + "m7g.2xlarge", + "r5b.xlarge", + "c5n.2xlarge", + "r6g.8xlarge", + "im4gn.xlarge", + "i4i.24xlarge", + "r6i.4xlarge", + "r5dn.12xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "i2.2xlarge", + "x2iedn.xlarge", + "m7g.16xlarge", + "r4.16xlarge", + "r5dn.2xlarge", + "c5ad.24xlarge", + "m6gd.16xlarge", + "m4.large", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", + "m1.large", + "d2.8xlarge", + "r5.xlarge", "d3.2xlarge", - "m6a.2xlarge", - "c5n.18xlarge", - "cr1.8xlarge", + "r5n.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "m6a.24xlarge", + "im4gn.8xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "c1.xlarge", + "m3.medium", + "c5.xlarge", + "is4gen.xlarge", "m6i.12xlarge", - "m5a.8xlarge", - "x1e.32xlarge", - "m5ad.xlarge", - "m3.large", + "c5ad.8xlarge", + "r7g.12xlarge", "z1d.12xlarge", - "m6g.12xlarge", - "i3.8xlarge", + "m1.medium", + "r7g.16xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", "r5.8xlarge", - "c5a.4xlarge", - "m6gd.4xlarge", - "r6id.2xlarge", - "r5.4xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c4.large", - "m5.2xlarge", - "c3.8xlarge", - "c5n.2xlarge", - "c6gn.16xlarge", - "m2.xlarge", - "i2.8xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "i4i.8xlarge", - "m6a.16xlarge", - "r5b.2xlarge", + "c6id.24xlarge", + "c6id.12xlarge", + "c6id.2xlarge", + "g5.48xlarge", + "im4gn.16xlarge", + "d2.2xlarge", + "c5.9xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "m6i.16xlarge", + "p3.8xlarge", + "c6i.16xlarge", + "m6in.4xlarge", + "m7gd.2xlarge", + "m5d.8xlarge", + "c6a.16xlarge", + "r6g.2xlarge", + "c7gd.16xlarge", + "m6in.24xlarge", + "m3.2xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "c6id.16xlarge", + "g5.2xlarge", + "r5ad.4xlarge", + "c5.4xlarge", + "c5.24xlarge", + "d3.4xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", + "c5d.2xlarge", + "cg1.4xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", "m6i.8xlarge", - "i2.xlarge", - "p2.16xlarge", - "z1d.xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "r6id.8xlarge", - "x2iedn.24xlarge", - "r3.4xlarge", - "g2.2xlarge", - "c5ad.12xlarge", + "m5.xlarge", + "m5.4xlarge", "z1d.2xlarge", - "x2iedn.4xlarge", + "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "c3.2xlarge", + "m6a.8xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m6idn.2xlarge", + "c7g.4xlarge", + "r6a.16xlarge", + "i3en.3xlarge", + "m5.2xlarge", + "r5n.2xlarge", + "m6a.xlarge", + "c5.18xlarge", + "m7g.xlarge", "m6gd.xlarge", + "m6i.24xlarge", + "m6idn.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "i3en.24xlarge", + "c6gn.4xlarge", + "c7g.8xlarge", + "r7g.8xlarge", + "r7g.xlarge", + "m6a.4xlarge", + "c5n.18xlarge", + "p2.16xlarge", "m5ad.2xlarge", - "r6gd.4xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "r5d.4xlarge", - "r6id.4xlarge", - "r5a.4xlarge", - "m6a.xlarge", - "r5dn.xlarge", - "m5a.2xlarge", - "m5zn.3xlarge", - "c5d.12xlarge", - "m5a.12xlarge", - "i4i.4xlarge", - "r5b.24xlarge", - "m5zn.2xlarge", + "m2.xlarge", + "c7gd.xlarge", + "r6i.2xlarge", + "c6a.48xlarge", + "z1d.6xlarge", + "c6i.12xlarge", + "m6id.32xlarge", "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "c5.2xlarge", "c6i.8xlarge", - "m5.12xlarge", - "im4gn.16xlarge", - "c5d.2xlarge", - "g3.8xlarge", - "hi1.4xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "c6in.2xlarge", + "i3.4xlarge", + "m6in.2xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "c6id.8xlarge", + "m6in.32xlarge", + "c6g.16xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "m5.24xlarge", + "r5b.24xlarge", + "r6gd.2xlarge", + "r5n.12xlarge", + "r4.xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "c6gd.4xlarge", + "r6a.xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "r5dn.24xlarge", + "c3.4xlarge", "m2.4xlarge", - "m5.4xlarge", - "c5ad.16xlarge", - "i4i.16xlarge", - "r5dn.4xlarge", - "m6a.48xlarge", - "p2.8xlarge", - "m6g.4xlarge", + "r6id.16xlarge", + "c6id.32xlarge", + "m4.16xlarge", + "x1.16xlarge", "m5d.4xlarge", - "cc2.8xlarge", - "c1.medium", - "x1e.xlarge", + "r6g.xlarge", + "cc1.4xlarge", + "m5zn.3xlarge", + "c6id.xlarge", + "g5.xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "r5b.16xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "m3.large", + "c5ad.4xlarge", + "c7gd.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "r6a.32xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r6id.8xlarge", + "i4i.12xlarge", + "g3.4xlarge", + "m6id.2xlarge", + "r7gd.4xlarge", + "r7gd.2xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r5dn.xlarge", + "r5.16xlarge", "m6i.2xlarge", - "g3s.xlarge", - "r6g.12xlarge", - "c3.xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5.4xlarge", + "c7g.xlarge", + "r5b.12xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "c6gd.xlarge", + "m5zn.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "m2.2xlarge", + "x1e.16xlarge", + "is4gen.8xlarge", "c5a.24xlarge", "r6id.xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", + "m6id.4xlarge", + "r5ad.12xlarge", "r5n.xlarge", - "m6i.xlarge", - "r5d.8xlarge", - "r6i.32xlarge", - "c5ad.xlarge", - "g4dn.16xlarge", - "c4.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", + "r6id.24xlarge", "im4gn.4xlarge", - "is4gen.4xlarge", - "r4.2xlarge", + "i4i.4xlarge", "c6g.2xlarge", - "c5.18xlarge", - "m1.large", + "r6i.8xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "r6a.48xlarge", + "c6g.12xlarge", + "z1d.3xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "g5.24xlarge", "c5.12xlarge", - "m5zn.6xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "c5n.9xlarge", - "m4.10xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "i3en.12xlarge", "r6id.32xlarge", - "t1.micro", - "c6gd.2xlarge", - "im4gn.8xlarge", + "m6id.24xlarge", + "m6i.xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "m6id.12xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", + "hi1.4xlarge", "m6i.4xlarge", + "m6idn.xlarge", + "g5.16xlarge", + "c7gd.2xlarge", + "r6i.12xlarge", "p3.2xlarge", - "c1.xlarge", - "p3.16xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "c5a.xlarge", - "m1.xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.16xlarge", - "c3.large", - "c3.2xlarge", + "r6gd.8xlarge", "i2.4xlarge", - "r6gd.xlarge", - "cc1.4xlarge", - "c5d.24xlarge", - "z1d.6xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "r6id.12xlarge", - "c6gd.xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "im4gn.xlarge", - "c4.4xlarge", - "m2.2xlarge", "m6gd.8xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "c5d.xlarge", - "r4.xlarge", + "m5.12xlarge", + "r5b.8xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "c6a.32xlarge", + "m7g.12xlarge", "d3.8xlarge", - "c6i.2xlarge", - "m6gd.12xlarge", - "c6i.4xlarge", + "c6i.32xlarge", + "r5n.4xlarge", + "c6id.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", "i3en.6xlarge", - "m6i.32xlarge", - "hs1.8xlarge", - "m6gd.16xlarge", - "m4.xlarge", - "r6i.16xlarge", - "d2.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "g3.16xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "m5d.12xlarge", "r5a.8xlarge", - "r5.2xlarge", - "i4i.xlarge", - "d2.xlarge", - "m3.medium", - "r5b.16xlarge", - "is4gen.2xlarge", - "x2iedn.8xlarge", - "c5.9xlarge", - "m5ad.8xlarge", - "c5ad.8xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "r5n.24xlarge", - "c6i.32xlarge", - "r6id.16xlarge", - "x1e.16xlarge", - "m5ad.4xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", - "g4dn.8xlarge", - "r5dn.2xlarge" - ] - }, - "ap-southeast-3": { - "enum": [ - "c5.12xlarge", + "m6id.8xlarge", + "r5n.16xlarge", + "d3.xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "m6id.16xlarge", + "x1e.4xlarge", + "r6a.24xlarge", + "p2.xlarge", + "c6g.xlarge", + "t1.micro", + "c6gd.8xlarge", + "c4.4xlarge", + "m1.xlarge", + "g4dn.8xlarge", + "m1.small", + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "c5ad.16xlarge", + "m6a.16xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" + ] + }, + "ap-southeast-3": { + "enum": [ + "i4i.16xlarge", + "r5d.12xlarge", + "g5.8xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "m6gd.2xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r6gd.16xlarge", + "r5.24xlarge", "m5.24xlarge", - "m5d.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6gd.2xlarge", + "g5.24xlarge", + "c5.12xlarge", + "g5.48xlarge", + "c5.9xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "c6gd.4xlarge", "c5n.9xlarge", - "m6gd.2xlarge", "i3en.12xlarge", - "m6i.4xlarge", - "i3.xlarge", - "x2iedn.24xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "i3en.2xlarge", - "r6g.2xlarge", - "x2iedn.4xlarge", "m6i.16xlarge", - "m5d.24xlarge", - "c6g.8xlarge", - "m5d.12xlarge", - "m6gd.xlarge", - "m6g.16xlarge", - "m5d.xlarge", + "m6i.xlarge", + "c6in.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5d.8xlarge", + "c6gd.12xlarge", + "g5.xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r6g.2xlarge", + "c6in.24xlarge", + "r5d.24xlarge", "m5.16xlarge", - "c6g.16xlarge", + "x2iedn.2xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", "m6g.xlarge", - "m5d.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "m6g.8xlarge", + "g5.2xlarge", + "c5.4xlarge", "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", + "m6i.4xlarge", + "r6gd.12xlarge", + "c5d.2xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "g5.16xlarge", + "m5d.16xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6in.4xlarge", + "c6gd.2xlarge", + "m6gd.12xlarge", + "c5d.4xlarge", + "r6gd.8xlarge", + "i4i.8xlarge", + "x2iedn.16xlarge", + "c6gd.16xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "i3en.2xlarge", + "r6gd.xlarge", + "i3.xlarge", + "x2idn.16xlarge", + "r5.2xlarge", "r5.12xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6in.xlarge", + "r6gd.4xlarge", "r6g.16xlarge", - "c5.xlarge", "r5d.xlarge", - "r5d.12xlarge", - "c5d.18xlarge", - "i3.16xlarge", - "c5.4xlarge", - "c5.2xlarge", - "m6gd.8xlarge", - "m5.12xlarge", - "r6g.8xlarge", - "c5d.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "r5d.2xlarge", - "m6gd.12xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "r5d.16xlarge", + "i3en.3xlarge", "i3en.6xlarge", - "m6g.2xlarge", - "m6i.24xlarge", - "x2iedn.32xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "m6gd.16xlarge", - "m5.8xlarge", - "x2iedn.2xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "c5n.4xlarge", - "r5.2xlarge", - "m6i.12xlarge", + "m6gd.4xlarge", + "m5.2xlarge", + "r5d.2xlarge", + "c6in.8xlarge", "c5n.xlarge", - "m6g.4xlarge", - "m5d.4xlarge", + "r5.16xlarge", + "r5d.4xlarge", "m6i.2xlarge", + "i3.2xlarge", + "m6i.32xlarge", "m6g.12xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "x2iedn.8xlarge", - "c5.9xlarge", - "m6gd.4xlarge", + "i4i.xlarge", + "c5d.12xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "m5d.12xlarge", "r5.4xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "m5.2xlarge", - "m5.xlarge", + "m6gd.xlarge", + "m6i.24xlarge", "c5n.2xlarge", - "m5d.8xlarge", - "m6i.xlarge", - "r5d.8xlarge", + "r6g.8xlarge", + "c5d.18xlarge", "i3en.24xlarge", - "c5d.9xlarge", + "i4i.24xlarge", + "m5d.2xlarge", + "c6gd.xlarge", + "c5d.24xlarge", + "c5n.18xlarge", "x2idn.24xlarge", - "r5d.16xlarge", - "r6g.4xlarge", + "x2iedn.xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "c6gd.8xlarge", + "m5d.24xlarge", + "m6g.8xlarge", + "i3.16xlarge", + "m5d.xlarge", "i3en.xlarge", - "c6g.4xlarge", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge", - "m6i.8xlarge" + "r5.xlarge", + "g5.12xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "c6in.2xlarge" ] }, "ap-southeast-4": { "enum": [ - "c5.12xlarge", - "m5d.16xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "i3.4xlarge", + "c5.xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "m6gd.2xlarge", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r5.24xlarge", "m5.24xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "c5.9xlarge", + "r6g.12xlarge", "i3en.12xlarge", - "m6gd.2xlarge", - "i3.xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5d.8xlarge", "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "i3en.2xlarge", "r6g.2xlarge", - "m5d.24xlarge", - "c6g.8xlarge", - "m6gd.xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "m5d.xlarge", "m5.16xlarge", - "c6g.16xlarge", + "r6g.4xlarge", "m6g.xlarge", - "m5d.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "m6g.8xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "r6g.16xlarge", - "c5.xlarge", - "r5d.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "i3.16xlarge", "c5.4xlarge", - "c5.2xlarge", - "m6gd.8xlarge", - "m5.12xlarge", - "r6g.8xlarge", - "c5d.xlarge", + "c5.24xlarge", "c5d.2xlarge", - "c6g.12xlarge", - "r5d.2xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "i3.8xlarge", + "i4i.2xlarge", "m6gd.12xlarge", - "i3en.6xlarge", - "m6g.2xlarge", - "m5.4xlarge", - "m6gd.16xlarge", - "m5.8xlarge", - "r5.xlarge", - "i3.4xlarge", + "c5d.4xlarge", + "i4i.8xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "i3en.2xlarge", + "r5.12xlarge", + "i3.xlarge", "r5.2xlarge", "m6g.4xlarge", - "m5d.4xlarge", - "m6g.12xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5.9xlarge", - "m6gd.4xlarge", - "r5.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "r5d.16xlarge", "i3en.3xlarge", + "i3en.6xlarge", + "m6gd.4xlarge", + "r5d.2xlarge", "m5.2xlarge", - "m5.xlarge", - "m5d.8xlarge", - "r5d.8xlarge", - "c5d.9xlarge", + "r5.16xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "i4i.xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "m5d.12xlarge", + "r5.4xlarge", + "m6gd.xlarge", + "r6g.8xlarge", + "c5d.18xlarge", "i3en.24xlarge", - "r5d.16xlarge", - "r6g.4xlarge", + "i4i.24xlarge", + "m5d.2xlarge", + "c5d.24xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "m5d.24xlarge", + "m6g.8xlarge", + "i3.16xlarge", + "m5d.xlarge", "i3en.xlarge", - "c6g.4xlarge", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge" + "r5.xlarge", + "m5.8xlarge" ] }, "ca-central-1": { "enum": [ - "c5.12xlarge", - "g5.12xlarge", - "g4dn.12xlarge", - "m4.16xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "r5d.12xlarge", "g5.8xlarge", - "m5d.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", + "x1e.2xlarge", + "i3.4xlarge", + "i4g.2xlarge", + "c5.xlarge", + "im4gn.4xlarge", + "is4gen.xlarge", + "i4i.4xlarge", + "m6i.12xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "m6gd.2xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "m6a.24xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "g4dn.12xlarge", + "r5d.8xlarge", + "c6g.12xlarge", + "m6g.2xlarge", + "r7g.12xlarge", + "m5ad.xlarge", "r6i.24xlarge", - "m4.10xlarge", - "c5n.9xlarge", - "i3en.12xlarge", - "x1e.4xlarge", + "m4.2xlarge", + "r7g.16xlarge", + "r6gd.16xlarge", + "c5a.16xlarge", + "x1.32xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6a.12xlarge", + "c6gn.2xlarge", "r5a.xlarge", + "x1e.32xlarge", + "c6a.8xlarge", + "r5b.24xlarge", + "r5.8xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6gd.2xlarge", + "g5.24xlarge", + "r5n.12xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "r4.xlarge", + "r4.2xlarge", + "g5.48xlarge", "m5a.24xlarge", - "c6gd.2xlarge", - "im4gn.8xlarge", - "r5ad.24xlarge", - "m6i.4xlarge", - "c6gd.4xlarge", - "g5.2xlarge", - "p3.2xlarge", + "im4gn.16xlarge", + "c5.9xlarge", + "d2.2xlarge", + "c4.xlarge", + "d2.4xlarge", + "c5a.12xlarge", "g5.4xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "x1.32xlarge", - "m5ad.24xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "r7g.2xlarge", + "r4.4xlarge", + "c6gd.4xlarge", + "g4dn.16xlarge", + "m4.4xlarge", + "c6gn.xlarge", + "i3en.12xlarge", + "p3.8xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "m4.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "r5b.2xlarge", + "m5a.12xlarge", + "m5d.8xlarge", + "r6g.xlarge", + "c6gd.12xlarge", + "c6a.16xlarge", + "c4.8xlarge", + "r5ad.8xlarge", "p3.16xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5ad.4xlarge", + "g5.xlarge", + "c6in.12xlarge", + "c5n.4xlarge", "r5d.24xlarge", - "x2iedn.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "c6gn.xlarge", + "c6in.24xlarge", "r6g.2xlarge", - "x2iedn.4xlarge", - "i4i.2xlarge", - "r5n.2xlarge", - "m5d.24xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "r6gd.8xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", - "m5d.xlarge", - "m5ad.12xlarge", + "is4gen.4xlarge", + "r5b.16xlarge", "m5.16xlarge", - "c6gn.2xlarge", - "c6g.16xlarge", - "r4.4xlarge", - "m5ad.2xlarge", - "d3.xlarge", - "r6gd.4xlarge", - "m6g.xlarge", - "r6gd.xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "is4gen.8xlarge", - "r5.24xlarge", - "c6gd.16xlarge", - "c5d.24xlarge", - "r5n.12xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", + "m4.xlarge", + "c6a.2xlarge", + "m6a.32xlarge", + "m5ad.24xlarge", "r4.8xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "c6i.12xlarge", + "c6a.24xlarge", + "r5n.8xlarge", + "r5a.16xlarge", "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c6gd.xlarge", - "r6i.8xlarge", - "c5d.12xlarge", - "m4.large", - "r6gd.2xlarge", - "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "im4gn.xlarge", - "i4i.4xlarge", - "r5b.12xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "r5b.24xlarge", - "i4i.32xlarge", - "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "x1e.8xlarge", - "r5d.xlarge", - "i3.16xlarge", - "g4dn.xlarge", - "d2.8xlarge", - "c4.2xlarge", - "c6gn.8xlarge", - "c5.2xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "r5a.4xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "g5.2xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", + "r5ad.4xlarge", + "i4g.xlarge", "c5.4xlarge", - "c6i.8xlarge", - "g3.16xlarge", - "c6gd.12xlarge", - "x1.16xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r5ad.2xlarge", - "r5n.16xlarge", - "im4gn.16xlarge", - "r6g.8xlarge", - "r4.xlarge", - "c5d.xlarge", - "r5a.16xlarge", + "d3.4xlarge", + "m6i.4xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "c5.24xlarge", "c5d.2xlarge", - "d3.8xlarge", - "c6i.2xlarge", - "c6g.12xlarge", - "r5a.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "g5.16xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "m6gd.xlarge", "g3.8xlarge", - "i3en.6xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "m6i.24xlarge", + "p3.2xlarge", + "m5a.8xlarge", + "i4i.2xlarge", + "i3.8xlarge", "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "d3.2xlarge", - "g5.48xlarge", - "m6i.32xlarge", - "m4.xlarge", - "m5.8xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "x2iedn.2xlarge", - "i4i.16xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "c5n.4xlarge", - "m4.4xlarge", - "r5a.8xlarge", + "r5b.4xlarge", + "c6gn.12xlarge", + "c6in.4xlarge", + "c6gd.2xlarge", + "m6gd.12xlarge", + "c5d.4xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "r6gd.8xlarge", + "i4i.8xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "c4.large", + "c6a.4xlarge", + "i3en.2xlarge", + "r6gd.xlarge", + "i3.xlarge", + "x2idn.16xlarge", + "r5.12xlarge", "r5.2xlarge", - "m6i.12xlarge", - "c5n.xlarge", - "m5a.8xlarge", + "r5b.8xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", "m6g.4xlarge", - "is4gen.xlarge", - "x1e.32xlarge", - "i4i.xlarge", - "m5ad.xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "d2.xlarge", - "x1e.xlarge", + "i4g.8xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6in.xlarge", + "i4g.4xlarge", + "c6a.32xlarge", + "is4gen.2xlarge", + "m7g.12xlarge", + "d3.8xlarge", + "r5ad.16xlarge", + "m5ad.4xlarge", + "c6i.32xlarge", + "m6a.8xlarge", + "r5n.4xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "r6gd.4xlarge", + "r5a.2xlarge", + "r6g.16xlarge", + "r5d.xlarge", + "c6a.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "g3.4xlarge", + "c4.2xlarge", + "r5ad.24xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "m6gd.4xlarge", + "m6a.12xlarge", + "g4dn.xlarge", + "m5.2xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "r5.16xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "r5d.4xlarge", "m6i.2xlarge", + "i3.2xlarge", + "i4i.xlarge", + "g3.16xlarge", "m6g.12xlarge", - "r5b.8xlarge", - "g5.xlarge", - "r5b.16xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "x2iedn.8xlarge", - "is4gen.2xlarge", - "m5ad.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", + "m6i.32xlarge", + "r5n.2xlarge", + "m6a.xlarge", + "m5ad.12xlarge", + "c5a.2xlarge", + "c5d.12xlarge", + "c5a.xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "r5a.12xlarge", + "m5d.12xlarge", + "m7g.2xlarge", + "m7g.xlarge", "r5b.xlarge", "r5.4xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "r5a.2xlarge", - "c5a.24xlarge", - "r5n.4xlarge", - "x1e.2xlarge", - "r5n.24xlarge", - "c6i.32xlarge", - "c4.large", - "m5.2xlarge", - "r6i.2xlarge", - "m5.xlarge", - "r5n.8xlarge", + "c6in.2xlarge", + "r5a.8xlarge", "c5n.2xlarge", + "m6i.24xlarge", + "c7g.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "r5b.12xlarge", + "c6i.xlarge", + "c7g.8xlarge", + "r7g.8xlarge", + "r5n.16xlarge", + "im4gn.xlarge", + "i4i.24xlarge", + "d3.xlarge", "c6gn.4xlarge", - "m5d.8xlarge", - "r5b.4xlarge", - "x1e.16xlarge", - "r5n.xlarge", - "r5ad.12xlarge", - "m5ad.4xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "c6gn.16xlarge", - "m6i.xlarge", - "r5d.8xlarge", - "c5d.9xlarge", + "m5a.4xlarge", "i3en.24xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "r6i.32xlarge", - "c5a.12xlarge", + "m5d.2xlarge", "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "i4i.8xlarge", - "r6gd.12xlarge", - "im4gn.4xlarge", - "i3en.xlarge", - "r4.2xlarge", - "is4gen.4xlarge", - "c6g.4xlarge", - "r5b.2xlarge", - "g4dn.8xlarge", - "g5.16xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "g5.24xlarge", - "im4gn.2xlarge", - "m6i.8xlarge" - ] + "m6a.4xlarge", + "r7g.xlarge", + "c6gd.xlarge", + "c5d.24xlarge", + "c5n.18xlarge", + "m5ad.2xlarge", + "m6a.2xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "x1e.16xlarge", + "is4gen.8xlarge", + "x1e.4xlarge", + "m7g.16xlarge", + "x2iedn.xlarge", + "r6i.2xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6a.48xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "c6gd.8xlarge", + "c4.4xlarge", + "m4.large", + "r6i.xlarge", + "g4dn.8xlarge", + "r5ad.12xlarge", + "m5d.24xlarge", + "r5n.xlarge", + "m5ad.8xlarge", + "m6g.8xlarge", + "c6i.12xlarge", + "m6a.48xlarge", + "i3.16xlarge", + "m7g.4xlarge", + "m6a.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "m5ad.16xlarge", + "d3.2xlarge", + "r5n.24xlarge", + "g5.12xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "im4gn.8xlarge", + "r7g.4xlarge", + "i4g.16xlarge" + ] }, - "cn-north-1": { + "ca-west-1": { "enum": [ - "c5.12xlarge", - "i2.xlarge", - "c3.4xlarge", - "p2.16xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "m5d.16xlarge", + "c6gn.8xlarge", + "i4i.16xlarge", + "r6id.24xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "m6gd.2xlarge", + "c6id.8xlarge", + "c6g.16xlarge", + "c6g.12xlarge", + "m6g.2xlarge", "r6i.24xlarge", - "m4.10xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "r5.8xlarge", + "c6id.24xlarge", + "m6g.16xlarge", + "c6id.12xlarge", + "c5.12xlarge", + "c6id.2xlarge", + "r6i.32xlarge", + "c5.9xlarge", + "r6g.12xlarge", + "c6gn.xlarge", "i3en.12xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "m6i.4xlarge", - "p3.2xlarge", - "c1.xlarge", - "p3.16xlarge", - "i3.xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "m1.medium", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r6gd.16xlarge", - "r3.4xlarge", - "i3en.2xlarge", - "g2.2xlarge", - "r6g.2xlarge", - "m1.xlarge", - "i2.2xlarge", + "r6id.32xlarge", + "c6i.16xlarge", "m6i.16xlarge", - "m5d.24xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "r6gd.8xlarge", - "m3.xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6g.16xlarge", + "m6id.24xlarge", + "m6i.xlarge", + "r6id.16xlarge", + "c6i.4xlarge", + "c6id.32xlarge", + "m5d.4xlarge", + "m5d.8xlarge", + "r6g.xlarge", + "c6id.xlarge", + "m6id.xlarge", + "r6g.2xlarge", "m5.16xlarge", - "r4.4xlarge", - "r6gd.4xlarge", - "c3.2xlarge", + "m6id.12xlarge", + "c6id.16xlarge", + "r6g.4xlarge", "m6g.xlarge", - "i2.4xlarge", - "r6gd.xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "m1.small", - "r4.8xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "c6i.12xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "r6i.8xlarge", - "c5d.12xlarge", - "m4.large", - "r6gd.2xlarge", - "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "r3.xlarge", - "d2.8xlarge", - "r3.2xlarge", + "c6i.2xlarge", "c5.4xlarge", - "c5.2xlarge", - "x1.16xlarge", - "c6i.8xlarge", - "c4.2xlarge", - "g3.16xlarge", - "c4.4xlarge", - "m2.2xlarge", + "m6i.4xlarge", + "c5.24xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "i4i.2xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "i4i.8xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", "m5.12xlarge", - "r3.8xlarge", - "r5a.16xlarge", - "r4.xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "g3.8xlarge", - "c6i.4xlarge", - "i3en.6xlarge", - "m6g.2xlarge", - "m6i.24xlarge", - "m2.4xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "m4.xlarge", - "m5.8xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "i3.4xlarge", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", + "i3en.2xlarge", + "r5.12xlarge", "r5.2xlarge", - "m6i.12xlarge", - "m5a.8xlarge", - "p2.8xlarge", + "m6i.8xlarge", "m6g.4xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "d2.xlarge", - "c1.medium", + "r6id.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6i.32xlarge", + "c6id.4xlarge", + "r6g.16xlarge", + "c6g.8xlarge", + "r6id.8xlarge", + "m6id.2xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m6gd.4xlarge", + "m5.2xlarge", + "r5.16xlarge", "m6i.2xlarge", + "m6i.32xlarge", "m6g.12xlarge", - "g3s.xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", - "c3.xlarge", + "i4i.xlarge", + "c5.18xlarge", + "c6g.4xlarge", "r5.4xlarge", - "i3en.3xlarge", - "r5a.2xlarge", - "c5a.24xlarge", - "c4.large", - "c6i.32xlarge", - "m5.2xlarge", - "r6i.2xlarge", - "c3.8xlarge", - "m5.xlarge", - "m5d.8xlarge", - "g3.4xlarge", - "m2.xlarge", - "m6i.xlarge", - "i2.8xlarge", - "c5d.9xlarge", - "r5d.8xlarge", - "m3.2xlarge", + "m5d.12xlarge", + "m6id.8xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "r6g.8xlarge", "i3en.24xlarge", - "r6i.12xlarge", - "r6i.32xlarge", - "c5a.12xlarge", + "c6i.xlarge", + "c6gn.4xlarge", + "m5d.2xlarge", "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r6gd.12xlarge", + "r6id.2xlarge", + "m6id.16xlarge", + "r6i.2xlarge", + "c6g.xlarge", + "r6id.xlarge", + "m6gd.16xlarge", + "m6id.4xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "c6i.12xlarge", + "m6g.8xlarge", + "m6id.32xlarge", + "c6i.8xlarge", + "m5d.xlarge", "i3en.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "g4dn.8xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "m6i.8xlarge", - "m1.large" + "r5.xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, - "cn-northwest-1": { + "cn-north-1": { "enum": [ - "c5.12xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "m5d.16xlarge", - "r6i.24xlarge", - "z1d.3xlarge", - "z1d.xlarge", "m4.10xlarge", - "i3en.12xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "m6i.4xlarge", - "p3.2xlarge", - "i3.xlarge", - "x1.32xlarge", - "p3.16xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "i3en.2xlarge", - "r6g.2xlarge", - "z1d.2xlarge", - "m6i.16xlarge", - "m5d.24xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", - "m5.16xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "c1.xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "x2iedn.24xlarge", "c6g.16xlarge", - "m5d.xlarge", - "r4.4xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "r5d.4xlarge", - "z1d.6xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "r4.8xlarge", - "p3.8xlarge", + "d2.xlarge", "g4dn.2xlarge", - "m4.2xlarge", - "c6i.12xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "r6i.8xlarge", - "m4.large", - "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "i3.16xlarge", - "g4dn.xlarge", - "d2.8xlarge", - "c5.4xlarge", - "c4.2xlarge", - "x1.16xlarge", - "c6i.8xlarge", - "c5.2xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r5a.16xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "r4.xlarge", - "c5d.2xlarge", "c6g.12xlarge", - "c6i.2xlarge", - "r5a.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "i3en.6xlarge", - "c6i.4xlarge", + "r5d.8xlarge", "m6g.2xlarge", - "m6i.24xlarge", + "r7g.12xlarge", + "r6i.24xlarge", + "m4.2xlarge", "c5a.16xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "m4.xlarge", - "m5.8xlarge", - "r6i.16xlarge", + "r6gd.16xlarge", + "m1.medium", + "r7g.16xlarge", + "r5.24xlarge", + "m5.24xlarge", + "x1.32xlarge", + "r5a.xlarge", + "r3.2xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6gd.2xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "r4.xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "c5.9xlarge", "d2.2xlarge", + "c4.xlarge", "d2.4xlarge", - "i3.4xlarge", - "r5.xlarge", + "c5a.12xlarge", + "r6g.12xlarge", + "r3.8xlarge", + "r4.4xlarge", + "r7g.2xlarge", + "g4dn.16xlarge", "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "m6i.12xlarge", - "m5a.8xlarge", - "m6g.4xlarge", + "i3en.12xlarge", + "m6i.16xlarge", + "p3.8xlarge", + "c3.4xlarge", + "m2.4xlarge", + "m6i.xlarge", + "c6i.4xlarge", "c6i.16xlarge", + "m4.16xlarge", + "x1.16xlarge", "m5d.4xlarge", - "d2.xlarge", - "z1d.12xlarge", - "m6i.2xlarge", - "m6g.12xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", - "r5.4xlarge", - "i3en.3xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "c6i.32xlarge", - "c4.large", - "m5.2xlarge", - "r6i.2xlarge", - "m5.xlarge", + "m5a.12xlarge", "m5d.8xlarge", - "m6i.xlarge", - "r5d.8xlarge", - "c5d.9xlarge", - "i3en.24xlarge", - "r6i.12xlarge", - "r6i.32xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "i3en.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "g4dn.8xlarge", - "c6g.2xlarge", - "c5.18xlarge", "r6g.xlarge", - "m6i.8xlarge" - ] - }, - "eu-central-1": { - "enum": [ - "g5.12xlarge", - "r6i.24xlarge", - "m6gd.2xlarge", - "g5.2xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", + "c4.8xlarge", + "p3.16xlarge", + "r6g.2xlarge", "r5d.24xlarge", - "c5d.4xlarge", - "m5a.xlarge", - "m5a.16xlarge", - "c6gn.xlarge", - "i2.2xlarge", - "m5d.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "m3.xlarge", - "m5d.12xlarge", - "m6a.4xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6gn.2xlarge", - "r4.4xlarge", - "d3.xlarge", - "c5ad.24xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "r6a.2xlarge", - "r5dn.24xlarge", - "m6g.8xlarge", - "c5.24xlarge", - "r5.16xlarge", - "m4.large", - "c6i.24xlarge", - "r6g.16xlarge", - "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", - "x1e.8xlarge", - "d2.8xlarge", - "c4.2xlarge", - "c6gd.12xlarge", - "r6g.8xlarge", - "c5ad.2xlarge", - "c6g.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "m5zn.12xlarge", - "m5n.16xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.8xlarge", - "d2.2xlarge", - "x2iedn.2xlarge", - "r5.xlarge", - "i3.4xlarge", - "c5n.xlarge", - "r5dn.16xlarge", - "is4gen.xlarge", - "c6i.16xlarge", - "g5.xlarge", - "r5b.8xlarge", - "x2iedn.xlarge", - "r6a.48xlarge", - "r5b.xlarge", - "x1e.2xlarge", - "m5n.4xlarge", - "m5n.24xlarge", - "m5.xlarge", - "r5b.4xlarge", - "r5ad.12xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", - "r6a.16xlarge", "m3.2xlarge", - "m5dn.8xlarge", - "r6gd.12xlarge", - "g5.16xlarge", - "r6g.xlarge", - "r6id.24xlarge", - "im4gn.2xlarge", - "c3.4xlarge", - "m5n.12xlarge", - "m5d.16xlarge", - "c5ad.4xlarge", - "z1d.3xlarge", - "x1e.4xlarge", - "i3en.12xlarge", - "r5ad.24xlarge", - "c6gd.4xlarge", - "m5dn.xlarge", - "r5dn.12xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "m5ad.24xlarge", - "m6a.8xlarge", - "r5ad.4xlarge", - "i3.2xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "r6g.2xlarge", - "r5n.2xlarge", - "i4i.2xlarge", - "r6gd.8xlarge", - "m6g.16xlarge", + "m4.xlarge", "m5.16xlarge", - "m5ad.12xlarge", - "m6a.24xlarge", - "m5n.xlarge", - "m6g.xlarge", - "m5d.2xlarge", - "is4gen.8xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", - "m5dn.4xlarge", "r4.8xlarge", - "c6i.12xlarge", - "r6i.8xlarge", - "r5b.12xlarge", - "c4.8xlarge", - "i4i.32xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r3.2xlarge", - "x1.16xlarge", - "g3.16xlarge", - "r5n.16xlarge", "r5a.16xlarge", - "r5a.12xlarge", - "m6g.2xlarge", - "m6i.24xlarge", - "m6a.32xlarge", - "d3.2xlarge", - "m6a.2xlarge", - "c5n.18xlarge", - "m6i.12xlarge", + "m5a.2xlarge", + "x2iedn.2xlarge", + "r5a.4xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "c3.xlarge", + "c5.24xlarge", + "m6i.4xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "m5d.16xlarge", + "r3.4xlarge", + "r6i.12xlarge", + "g3.8xlarge", + "p3.2xlarge", "m5a.8xlarge", - "m5dn.24xlarge", - "x1e.32xlarge", - "m5ad.xlarge", - "m3.large", - "z1d.12xlarge", - "m6g.12xlarge", "i3.8xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "m6gd.4xlarge", - "r6id.2xlarge", - "r5.4xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c4.large", - "m5.2xlarge", - "c3.8xlarge", - "c5n.2xlarge", - "c6gn.16xlarge", - "i2.8xlarge", - "r5d.16xlarge", - "m5dn.12xlarge", - "r6g.4xlarge", + "i4i.2xlarge", + "x2iedn.32xlarge", + "c5d.4xlarge", + "c7g.2xlarge", + "r6gd.8xlarge", "i4i.8xlarge", - "m6a.16xlarge", - "r5b.2xlarge", - "m5n.2xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", + "m5a.xlarge", + "i2.4xlarge", + "i4i.32xlarge", + "m5.12xlarge", + "c4.large", + "i3en.2xlarge", + "r6gd.xlarge", + "x2idn.16xlarge", + "r5.2xlarge", + "i3.xlarge", + "r5.12xlarge", "m6i.8xlarge", - "i2.xlarge", - "p2.16xlarge", - "g5.8xlarge", - "r6a.8xlarge", - "z1d.xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "r6id.8xlarge", - "x2iedn.24xlarge", - "r3.4xlarge", - "g2.2xlarge", - "c5ad.12xlarge", - "z1d.2xlarge", - "x2iedn.4xlarge", - "m6gd.xlarge", - "m5ad.2xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c1.medium", + "m7g.12xlarge", + "c6i.32xlarge", + "c3.2xlarge", + "c7g.16xlarge", + "g3s.xlarge", + "c7g.12xlarge", + "m7g.8xlarge", "r6gd.4xlarge", + "r5a.2xlarge", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "g3.4xlarge", + "c4.2xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "r5d.2xlarge", + "m5.2xlarge", + "r5.16xlarge", "c5a.8xlarge", - "c5a.2xlarge", + "m6i.2xlarge", "r5d.4xlarge", - "r6id.4xlarge", - "r5a.4xlarge", - "m6a.xlarge", - "r5dn.xlarge", - "m5a.2xlarge", - "m5zn.3xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "m6g.12xlarge", + "i4i.xlarge", + "c5a.xlarge", + "g3.16xlarge", "c5d.12xlarge", - "m5a.12xlarge", - "i4i.4xlarge", - "r5b.24xlarge", - "m5zn.2xlarge", - "r6a.24xlarge", - "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "m5.12xlarge", - "im4gn.16xlarge", - "c5d.2xlarge", - "g3.8xlarge", - "m5dn.16xlarge", - "m5n.8xlarge", - "m5.4xlarge", - "c5ad.16xlarge", - "i4i.16xlarge", - "r5dn.4xlarge", - "m6a.48xlarge", + "c5a.2xlarge", + "c5.18xlarge", "p2.8xlarge", - "m6g.4xlarge", - "m5d.4xlarge", - "x1e.xlarge", - "m6i.2xlarge", - "g3s.xlarge", - "r6g.12xlarge", - "c3.xlarge", + "r5a.12xlarge", + "m5d.12xlarge", + "m7g.2xlarge", + "m7g.xlarge", + "r5.4xlarge", + "c6g.4xlarge", + "r5a.8xlarge", + "m6i.24xlarge", + "c7g.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "i3en.24xlarge", + "r7g.8xlarge", + "c7g.8xlarge", + "m3.xlarge", + "i4i.24xlarge", + "m5a.4xlarge", + "r7g.xlarge", + "m5d.2xlarge", + "r6i.4xlarge", + "c5d.24xlarge", + "p2.16xlarge", + "m2.xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "m2.2xlarge", + "r4.16xlarge", + "x2iedn.xlarge", + "p2.xlarge", + "m7g.16xlarge", "c5a.24xlarge", - "r6id.xlarge", + "i2.2xlarge", "r6i.2xlarge", - "r5n.8xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", - "r6a.xlarge", - "r5n.xlarge", - "m6i.xlarge", - "r5d.8xlarge", - "r6i.32xlarge", - "c5ad.xlarge", - "g4dn.16xlarge", - "c4.xlarge", - "im4gn.4xlarge", - "r4.2xlarge", - "is4gen.4xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "c5.12xlarge", - "m5zn.6xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "r6a.4xlarge", - "r6id.32xlarge", - "c5n.9xlarge", - "m4.10xlarge", - "c6gd.2xlarge", - "im4gn.8xlarge", - "r6a.12xlarge", - "m6i.4xlarge", - "p3.2xlarge", - "g5.4xlarge", - "p3.16xlarge", - "r5dn.8xlarge", "c6g.xlarge", - "c5a.xlarge", - "r6a.32xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.16xlarge", - "c3.large", - "c3.2xlarge", - "i2.4xlarge", - "r6gd.xlarge", - "c5d.24xlarge", - "z1d.6xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "r6id.12xlarge", - "c6gd.xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "im4gn.xlarge", + "m1.xlarge", + "m4.large", "c4.4xlarge", - "m6gd.8xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r4.xlarge", - "c5d.xlarge", - "d3.8xlarge", - "c6i.2xlarge", - "m6gd.12xlarge", - "c6i.4xlarge", - "i3en.6xlarge", - "g5.48xlarge", - "m6i.32xlarge", - "m6gd.16xlarge", - "m4.xlarge", - "r6i.16xlarge", - "d2.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "i4i.xlarge", - "d2.xlarge", - "m3.medium", - "r5b.16xlarge", - "is4gen.2xlarge", - "x2iedn.8xlarge", - "c5.9xlarge", - "m5ad.8xlarge", - "c5ad.8xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "c6i.32xlarge", - "r5n.24xlarge", - "r6id.16xlarge", - "x1e.16xlarge", - "m5ad.4xlarge", - "c5d.9xlarge", - "i3en.24xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", "g4dn.8xlarge", - "m5dn.2xlarge", - "g5.24xlarge", - "r5dn.2xlarge" + "r6i.xlarge", + "m5d.24xlarge", + "m1.small", + "m6g.8xlarge", + "c6i.12xlarge", + "i3.16xlarge", + "m7g.4xlarge", + "i2.xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "m1.large", + "m5.8xlarge", + "i2.8xlarge", + "r7g.4xlarge", + "g4dn.12xlarge" ] }, - "eu-central-2": { + "cn-northwest-1": { "enum": [ - "c5d.xlarge", - "i3.8xlarge", - "c5.12xlarge", - "c5d.2xlarge", - "r5.8xlarge", - "c5.9xlarge", - "r5d.2xlarge", - "m6gd.4xlarge", - "m5d.2xlarge", - "r5.4xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "z1d.3xlarge", + "r7g.12xlarge", + "r6i.24xlarge", + "z1d.12xlarge", + "c5a.16xlarge", + "m4.2xlarge", + "r7g.16xlarge", "r5.24xlarge", - "m6gd.12xlarge", - "i3en.3xlarge", - "r5d.4xlarge", - "c5d.24xlarge", + "x1.32xlarge", "m5.24xlarge", - "m5d.16xlarge", - "i3en.6xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "m5.2xlarge", - "m5.xlarge", - "m6gd.2xlarge", + "r5a.xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "r4.xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "d2.2xlarge", + "c4.xlarge", + "d2.4xlarge", + "c5a.12xlarge", + "r6g.12xlarge", + "r7g.2xlarge", + "r4.4xlarge", + "g4dn.16xlarge", + "m4.4xlarge", "i3en.12xlarge", + "p3.8xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "m4.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "m5a.12xlarge", + "r6g.xlarge", "m5d.8xlarge", - "m5.4xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m6gd.16xlarge", - "i3.xlarge", - "r5.12xlarge", - "m5.8xlarge", - "m5.12xlarge", + "c4.8xlarge", + "p3.16xlarge", + "c6in.12xlarge", "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "r5d.8xlarge", - "r5.xlarge", - "i3en.24xlarge", - "i3.4xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", - "i3en.2xlarge", - "r5.2xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.16xlarge", - "r5d.xlarge", - "i3.16xlarge", - "m5d.24xlarge", - "i3en.xlarge", - "r5d.12xlarge", - "c5.4xlarge", - "m6gd.xlarge", - "m5d.4xlarge", - "c5.2xlarge", - "m5d.12xlarge", - "m5d.xlarge", - "c5.18xlarge", + "c6in.24xlarge", + "r6g.2xlarge", "m5.16xlarge", - "m6gd.8xlarge" - ] - }, - "eu-north-1": { - "enum": [ - "c5.12xlarge", - "g5.12xlarge", - "g4dn.12xlarge", - "g5.8xlarge", - "m5.24xlarge", + "m4.xlarge", + "r4.8xlarge", + "r5a.16xlarge", + "m5a.2xlarge", + "x2iedn.2xlarge", + "r5a.4xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "m6i.4xlarge", + "c5.24xlarge", + "c5a.4xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", "m5d.16xlarge", + "z1d.xlarge", + "r6i.12xlarge", + "m5a.8xlarge", + "p3.2xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6in.4xlarge", + "c5d.4xlarge", + "c7g.2xlarge", + "i4i.8xlarge", + "x2iedn.16xlarge", + "m5a.xlarge", + "i4i.32xlarge", + "m5.12xlarge", + "c4.large", + "i3en.2xlarge", + "r5.12xlarge", "x2idn.16xlarge", - "r6i.24xlarge", - "x2idn.32xlarge", - "c5n.9xlarge", - "m6gd.2xlarge", - "i3en.12xlarge", - "c6gd.2xlarge", - "c6gd.4xlarge", - "m6i.4xlarge", - "r5dn.12xlarge", - "g5.2xlarge", - "g5.4xlarge", - "c6gn.12xlarge", + "r5.2xlarge", "i3.xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "x2iedn.24xlarge", - "r5d.24xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "z1d.2xlarge", + "c6in.xlarge", + "m7g.12xlarge", + "c6i.32xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "r6g.16xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "c4.2xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "r5d.2xlarge", + "m5.2xlarge", + "c6in.8xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "m6i.2xlarge", "i3.2xlarge", - "c5d.4xlarge", - "r5dn.8xlarge", - "c6g.xlarge", + "i4i.xlarge", + "m6g.12xlarge", + "m6i.32xlarge", "c5a.xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "c6gn.xlarge", - "r6g.2xlarge", - "x2iedn.4xlarge", - "m6i.16xlarge", - "r5n.2xlarge", - "m5d.24xlarge", - "c6g.8xlarge", - "r6gd.8xlarge", - "m6gd.xlarge", - "m6g.16xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "r5a.12xlarge", + "r5.4xlarge", + "m7g.2xlarge", + "m7g.xlarge", "m5d.12xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6g.16xlarge", - "c6gn.2xlarge", - "m5.16xlarge", - "r6gd.4xlarge", - "m6g.xlarge", - "r6gd.xlarge", - "c5a.8xlarge", + "c6in.2xlarge", + "r5a.8xlarge", + "m6i.24xlarge", + "c7g.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "c7g.8xlarge", + "r7g.8xlarge", + "i3en.24xlarge", + "i4i.24xlarge", + "m5a.4xlarge", "m5d.2xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c6gd.16xlarge", - "c5d.24xlarge", - "r5n.12xlarge", - "r5d.4xlarge", - "r5dn.24xlarge", + "r6i.4xlarge", + "r7g.xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "m7g.16xlarge", + "r4.16xlarge", + "x2iedn.xlarge", + "r6i.2xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "z1d.6xlarge", + "c4.4xlarge", + "m4.large", + "g4dn.8xlarge", + "r6i.xlarge", + "m5d.24xlarge", "m6g.8xlarge", - "g4dn.2xlarge", "c6i.12xlarge", - "r5dn.xlarge", - "c5.24xlarge", - "r5.16xlarge", - "r6i.8xlarge", - "c6gd.xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "c6i.24xlarge", - "r6g.16xlarge", - "c5.xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "c5d.18xlarge", "i3.16xlarge", - "g4dn.xlarge", - "d2.8xlarge", - "c6gn.8xlarge", - "c5.4xlarge", - "c5.2xlarge", + "m7g.4xlarge", "c6i.8xlarge", - "c6gd.12xlarge", - "m5.12xlarge", - "m6gd.8xlarge", - "r5n.16xlarge", - "r6g.8xlarge", - "c5d.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r5d.2xlarge", - "m6gd.12xlarge", - "i3en.6xlarge", - "c6i.4xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "r7g.4xlarge", + "g4dn.12xlarge" + ] + }, + "eu-central-1": { + "enum": [ + "x1e.2xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", "m6g.2xlarge", - "m6i.24xlarge", - "x2iedn.32xlarge", + "m5ad.xlarge", "c5a.16xlarge", - "m5.4xlarge", - "g5.48xlarge", - "m6i.32xlarge", - "m6gd.16xlarge", - "m5.8xlarge", - "r6i.16xlarge", - "d2.2xlarge", + "x1.32xlarge", + "r5.24xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "r3.2xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6a.12xlarge", + "m5dn.4xlarge", + "d3en.12xlarge", + "c4.xlarge", "d2.4xlarge", - "x2iedn.2xlarge", - "c5n.18xlarge", - "r5.xlarge", - "i3.4xlarge", - "r5dn.4xlarge", - "c5n.4xlarge", - "r5.2xlarge", - "m6i.12xlarge", - "c5n.xlarge", - "m6g.4xlarge", - "r5dn.16xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "d2.xlarge", - "m6i.2xlarge", - "m6g.12xlarge", - "g5.xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "x2iedn.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "m6gd.4xlarge", - "r5.4xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "c5a.24xlarge", - "r5n.4xlarge", - "c6i.32xlarge", - "r5n.24xlarge", - "m5.2xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "m5.xlarge", - "c6gn.4xlarge", - "c5n.2xlarge", - "m5d.8xlarge", - "r5n.xlarge", - "c6gd.8xlarge", - "c6gn.16xlarge", - "r5d.8xlarge", - "m6i.xlarge", - "c5d.9xlarge", - "i3en.24xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "r6i.32xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", + "r3.8xlarge", + "c6gn.xlarge", + "r7gd.16xlarge", + "m6idn.4xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "c3.large", + "r5b.2xlarge", + "c7gd.12xlarge", + "r5ad.8xlarge", + "m6id.xlarge", + "is4gen.4xlarge", + "r4.8xlarge", + "m6a.32xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6a.4xlarge", "r6g.4xlarge", + "r6idn.32xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c3.xlarge", + "c5a.4xlarge", "r6gd.12xlarge", - "i3en.xlarge", - "c6g.4xlarge", - "g4dn.8xlarge", - "g5.16xlarge", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge", - "g5.24xlarge", - "r5dn.2xlarge", - "m6i.8xlarge" - ] - }, - "eu-south-1": { - "enum": [ - "c5.12xlarge", - "g4dn.12xlarge", - "m5.24xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", "m5d.16xlarge", - "x2idn.16xlarge", - "r6i.24xlarge", - "x2idn.32xlarge", - "c5ad.4xlarge", - "c5n.9xlarge", - "i3en.12xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "r5dn.12xlarge", - "m6i.4xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "x2iedn.24xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "c5ad.xlarge", + "r5b.4xlarge", + "c6in.4xlarge", + "c5ad.2xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "i4i.32xlarge", + "c4.large", "i3en.2xlarge", - "c6gn.xlarge", + "x2idn.16xlarge", + "r6id.4xlarge", + "m5zn.6xlarge", + "c5.2xlarge", + "m5zn.2xlarge", + "c7g.16xlarge", + "g3s.xlarge", + "r6gd.4xlarge", "c5ad.12xlarge", - "r6g.2xlarge", - "x2iedn.4xlarge", - "m6i.16xlarge", - "r5n.2xlarge", - "m5d.24xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6g.16xlarge", - "c6gn.2xlarge", - "m5.16xlarge", - "m6g.xlarge", - "c5ad.24xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "r5n.12xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5dn.24xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "g4dn.2xlarge", - "c6i.12xlarge", - "m5a.2xlarge", - "r5dn.xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r6i.8xlarge", - "r5.12xlarge", + "c6a.xlarge", + "r6in.12xlarge", + "r5ad.24xlarge", + "r5d.16xlarge", + "r6idn.8xlarge", "c6i.24xlarge", - "m5a.12xlarge", - "r6g.16xlarge", - "c5.xlarge", - "r5d.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "i3.16xlarge", + "m5a.16xlarge", "g4dn.xlarge", - "d2.8xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "m5.12xlarge", - "r5n.16xlarge", - "r5a.16xlarge", - "c5ad.2xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "c5a.2xlarge", + "c6g.4xlarge", "r5a.12xlarge", - "r5d.2xlarge", - "i3en.6xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "m6i.24xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "c5ad.16xlarge", - "m5.8xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "x2iedn.2xlarge", - "c5n.18xlarge", + "r5b.xlarge", + "m7g.2xlarge", + "p2.8xlarge", + "c5n.2xlarge", + "m5dn.24xlarge", + "r6g.8xlarge", + "im4gn.xlarge", + "i4i.24xlarge", + "r5dn.12xlarge", + "r6i.4xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "r6in.4xlarge", + "m7g.16xlarge", + "x2iedn.xlarge", + "i2.2xlarge", + "r6idn.xlarge", + "r4.16xlarge", + "r5dn.2xlarge", + "m6gd.16xlarge", + "c5ad.24xlarge", + "m4.large", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", "r5.xlarge", - "i3.4xlarge", - "r5dn.4xlarge", - "c5n.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", + "d2.8xlarge", + "d3.2xlarge", + "r5n.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "im4gn.8xlarge", + "m6a.24xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "m3.medium", + "c5.xlarge", + "d3en.8xlarge", "m6i.12xlarge", - "c5n.xlarge", - "m5a.8xlarge", - "m6g.4xlarge", - "r5dn.16xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "d2.xlarge", - "m6i.2xlarge", - "m6g.12xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", + "is4gen.xlarge", + "c5ad.8xlarge", + "r7g.12xlarge", + "z1d.12xlarge", + "r7g.16xlarge", + "r6in.32xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", "r5.8xlarge", - "x2iedn.8xlarge", + "c6id.24xlarge", + "c6id.12xlarge", + "c6id.2xlarge", + "g5.48xlarge", + "im4gn.16xlarge", + "d2.2xlarge", "c5.9xlarge", - "c5a.4xlarge", - "c5ad.8xlarge", - "r5.4xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c6i.32xlarge", - "r5n.24xlarge", - "m5.2xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "m5.xlarge", - "c5n.2xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", - "r5n.xlarge", - "c6gn.16xlarge", - "r5d.8xlarge", - "m6i.xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "r6i.32xlarge", "c5a.12xlarge", - "r6i.4xlarge", - "c5ad.xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", - "g4dn.8xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5dn.2xlarge", - "m6i.8xlarge" - ] - }, - "eu-south-2": { - "enum": [ - "c5.12xlarge", - "m5.24xlarge", - "m5d.16xlarge", - "m6gd.2xlarge", - "i3en.12xlarge", - "i3.xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "i3en.2xlarge", + "r7g.2xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "p3.8xlarge", + "m6in.4xlarge", + "m5n.2xlarge", + "m7gd.2xlarge", + "m5d.8xlarge", + "c6a.16xlarge", "r6g.2xlarge", - "m5d.24xlarge", - "c6g.8xlarge", - "m5d.12xlarge", - "m6gd.xlarge", - "m6g.16xlarge", - "m5.16xlarge", - "c6g.16xlarge", - "m5d.xlarge", - "m6g.xlarge", - "m5d.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "m6g.8xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "r6g.16xlarge", - "c5.xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "c5d.18xlarge", - "i3.16xlarge", + "c7gd.16xlarge", + "m6in.24xlarge", + "m3.2xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "c6id.16xlarge", + "g5.2xlarge", + "r5ad.4xlarge", "c5.4xlarge", - "c5.2xlarge", - "m6gd.8xlarge", - "m5.12xlarge", - "r6g.8xlarge", - "c5d.xlarge", + "c5.24xlarge", + "d3.4xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", "c5d.2xlarge", - "c6g.12xlarge", - "r5d.2xlarge", - "m6gd.12xlarge", - "i3en.6xlarge", - "m6g.2xlarge", + "d3en.xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "m5n.24xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", + "r6in.8xlarge", + "m6i.8xlarge", + "m5.xlarge", "m5.4xlarge", - "m6gd.16xlarge", - "m5.8xlarge", - "i3.4xlarge", - "r5.xlarge", - "r5.2xlarge", - "m6g.4xlarge", - "m5d.4xlarge", - "m6g.12xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5.9xlarge", - "m6gd.4xlarge", - "r5.4xlarge", + "z1d.2xlarge", + "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "c3.2xlarge", + "m6a.8xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m6idn.2xlarge", + "c7g.4xlarge", + "r6a.16xlarge", "i3en.3xlarge", "m5.2xlarge", - "m5.xlarge", - "m5d.8xlarge", - "r5d.8xlarge", - "c5d.9xlarge", - "i3en.24xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", - "c6g.2xlarge", + "r5n.2xlarge", + "m6a.xlarge", + "m5dn.16xlarge", "c5.18xlarge", - "r6g.xlarge" - ] - }, - "eu-west-1": { - "enum": [ - "g5.12xlarge", - "r6i.24xlarge", - "m6gd.2xlarge", - "g5.2xlarge", - "x1.32xlarge", + "m7g.xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "m6idn.8xlarge", + "c5d.18xlarge", "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "m1.medium", - "m5a.xlarge", - "m5a.16xlarge", - "c6gn.xlarge", - "i2.2xlarge", - "d3en.12xlarge", - "d3en.xlarge", - "m5d.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "m3.xlarge", + "c7g.8xlarge", + "r7g.8xlarge", + "c6gn.4xlarge", + "i3en.24xlarge", + "r7g.xlarge", "m6a.4xlarge", - "m5d.12xlarge", - "r6i.xlarge", + "c5n.18xlarge", + "p2.16xlarge", + "m5ad.2xlarge", + "m5dn.12xlarge", + "c7gd.xlarge", + "r6i.2xlarge", + "c6a.48xlarge", + "z1d.6xlarge", + "c6i.12xlarge", + "m6id.32xlarge", + "i3.16xlarge", + "c6i.8xlarge", "m5d.xlarge", - "c6gn.2xlarge", - "r4.4xlarge", - "d3.xlarge", - "c5ad.24xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "r6a.2xlarge", - "r5dn.24xlarge", - "m6g.8xlarge", - "m1.small", - "c5.24xlarge", - "r5.16xlarge", - "m4.large", - "c6i.24xlarge", - "r6g.16xlarge", - "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", "m5ad.16xlarge", - "c5d.18xlarge", - "x1e.8xlarge", - "d2.8xlarge", - "c4.2xlarge", - "c6gd.12xlarge", - "d3en.6xlarge", - "r6g.8xlarge", - "c5ad.2xlarge", - "d3en.8xlarge", - "c6g.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "h1.2xlarge", - "cg1.4xlarge", - "h1.8xlarge", - "m5zn.12xlarge", - "m5n.16xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.8xlarge", - "d2.2xlarge", - "x2iedn.2xlarge", + "r6in.16xlarge", + "m5dn.2xlarge", + "c6in.2xlarge", "i3.4xlarge", - "r5.xlarge", - "c5n.xlarge", - "is4gen.xlarge", - "r5dn.16xlarge", - "c6i.16xlarge", + "r6in.xlarge", + "m6in.2xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "c6g.16xlarge", + "c6id.8xlarge", + "m6in.32xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "m5.24xlarge", + "r5b.24xlarge", + "r6in.2xlarge", + "r6gd.2xlarge", + "r5n.12xlarge", + "r4.xlarge", + "r6idn.4xlarge", + "g5.4xlarge", + "r6a.xlarge", + "c6gd.4xlarge", + "c5n.9xlarge", + "r6g.12xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "r5dn.24xlarge", + "c3.4xlarge", + "r6id.16xlarge", + "c6id.32xlarge", + "m4.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5zn.3xlarge", + "c6id.xlarge", "g5.xlarge", - "r5b.8xlarge", - "x2iedn.xlarge", - "r6a.48xlarge", - "r5b.xlarge", - "x1e.2xlarge", - "m5n.4xlarge", - "m5n.24xlarge", - "m5.xlarge", - "r5b.4xlarge", - "r5ad.12xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", - "r6a.16xlarge", - "m3.2xlarge", - "m5dn.8xlarge", - "r6gd.12xlarge", - "g5.16xlarge", - "r6g.xlarge", - "r6id.24xlarge", - "im4gn.2xlarge", - "c3.4xlarge", - "m5n.12xlarge", - "m5d.16xlarge", - "c5ad.4xlarge", - "c7g.12xlarge", - "z1d.3xlarge", - "x1e.4xlarge", - "i3en.12xlarge", - "c6gd.4xlarge", - "r5dn.12xlarge", - "m5dn.xlarge", - "r5ad.24xlarge", - "c6gn.12xlarge", - "c6in.xlarge", - "m6a.8xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "m5n.xlarge", + "r5b.16xlarge", + "m4.xlarge", + "r5n.8xlarge", "m5ad.24xlarge", - "i3.xlarge", - "r5ad.4xlarge", - "i3.2xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "r6g.2xlarge", - "r5n.2xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", "i4i.2xlarge", - "r6gd.8xlarge", - "m6g.16xlarge", - "m5ad.12xlarge", - "m5.16xlarge", - "m6a.24xlarge", - "m5n.xlarge", - "m6g.xlarge", - "d3en.2xlarge", - "m5d.2xlarge", - "is4gen.8xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", - "m5dn.4xlarge", - "r4.8xlarge", - "c6i.12xlarge", - "c7g.8xlarge", - "r6i.8xlarge", - "r5b.12xlarge", - "c4.8xlarge", - "i4i.32xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r3.2xlarge", - "x1.16xlarge", - "g3.16xlarge", - "r5n.16xlarge", - "r5a.16xlarge", - "r5a.12xlarge", - "c6in.32xlarge", - "m6g.2xlarge", - "m6i.24xlarge", - "m6a.32xlarge", - "d3.2xlarge", - "m6a.2xlarge", - "c5n.18xlarge", - "c6in.16xlarge", - "cr1.8xlarge", - "m6i.12xlarge", - "m5a.8xlarge", - "m5dn.24xlarge", - "x1e.32xlarge", - "m5ad.xlarge", - "m3.large", - "z1d.12xlarge", - "m6g.12xlarge", "i3.8xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "m6gd.4xlarge", - "r6id.2xlarge", - "r5.4xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c4.large", - "m5.2xlarge", - "c3.8xlarge", - "c5n.2xlarge", - "c6gn.16xlarge", - "m2.xlarge", - "i2.8xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "m5dn.12xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", "i4i.8xlarge", - "m6a.16xlarge", - "r5b.2xlarge", - "m5n.2xlarge", - "m6i.8xlarge", - "i2.xlarge", - "p2.16xlarge", - "g5.8xlarge", - "r6a.8xlarge", - "z1d.xlarge", - "r5a.xlarge", - "m5a.24xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "m3.large", + "c5ad.4xlarge", + "c7gd.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "r6a.32xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r6idn.12xlarge", "r6id.8xlarge", - "c6in.24xlarge", - "x2iedn.24xlarge", - "c7g.4xlarge", - "r3.4xlarge", - "g2.2xlarge", - "c5ad.12xlarge", - "z1d.2xlarge", - "x2iedn.4xlarge", - "m6gd.xlarge", - "m5ad.2xlarge", - "r6gd.4xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "r5d.4xlarge", - "r6id.4xlarge", - "r5a.4xlarge", - "m6a.xlarge", - "m5a.2xlarge", + "i4i.12xlarge", + "g3.4xlarge", + "m6id.2xlarge", + "r7gd.4xlarge", + "r7gd.2xlarge", + "r6idn.2xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r6in.24xlarge", "r5dn.xlarge", - "m5zn.3xlarge", - "c5d.12xlarge", - "m5a.12xlarge", - "c7g.16xlarge", - "i4i.4xlarge", - "r5b.24xlarge", - "m5zn.2xlarge", - "r6a.24xlarge", - "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "m5.12xlarge", - "im4gn.16xlarge", - "c5d.2xlarge", - "c6in.12xlarge", - "g3.8xlarge", - "m5dn.16xlarge", - "hi1.4xlarge", - "m5n.8xlarge", - "m2.4xlarge", - "m5.4xlarge", - "c5ad.16xlarge", - "c6in.4xlarge", - "i4i.16xlarge", - "r5dn.4xlarge", - "m6a.48xlarge", - "p2.8xlarge", - "m6g.4xlarge", - "m5d.4xlarge", - "cc2.8xlarge", - "c1.medium", - "x1e.xlarge", + "r5.16xlarge", "m6i.2xlarge", - "g3s.xlarge", - "r6g.12xlarge", - "c3.xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5.4xlarge", + "m5dn.8xlarge", "c7g.xlarge", + "r5b.12xlarge", + "m5n.16xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "c6gd.xlarge", + "m5zn.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "x1e.16xlarge", + "is4gen.8xlarge", "c5a.24xlarge", + "m5n.4xlarge", "r6id.xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", - "r6a.xlarge", + "m6id.4xlarge", + "r5ad.12xlarge", "r5n.xlarge", - "m6i.xlarge", - "r5d.8xlarge", - "c7g.2xlarge", - "r6i.32xlarge", - "c5ad.xlarge", - "g4dn.16xlarge", - "c4.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", + "r6id.24xlarge", "im4gn.4xlarge", - "r4.2xlarge", - "is4gen.4xlarge", + "i4i.4xlarge", "c6g.2xlarge", - "c5.18xlarge", - "m1.large", + "r6i.8xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r6a.48xlarge", + "z1d.3xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "g5.24xlarge", "c5.12xlarge", - "m5zn.6xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "r6a.4xlarge", - "c5n.9xlarge", - "m4.10xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", "r6id.32xlarge", - "c6in.8xlarge", + "i3en.12xlarge", + "m6id.24xlarge", + "m6i.xlarge", + "m5n.8xlarge", "d3en.4xlarge", - "t1.micro", - "c6gd.2xlarge", - "im4gn.8xlarge", - "r6a.12xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "m5dn.xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "m6id.12xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", "m6i.4xlarge", + "m6idn.xlarge", + "g5.16xlarge", + "c7gd.2xlarge", + "r6i.12xlarge", "p3.2xlarge", - "g5.4xlarge", - "c1.xlarge", - "p3.16xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "c5a.xlarge", - "r6a.32xlarge", - "m1.xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.16xlarge", - "h1.4xlarge", - "c3.large", - "c3.2xlarge", + "r6gd.8xlarge", "i2.4xlarge", - "r6gd.xlarge", - "cc1.4xlarge", - "c5d.24xlarge", - "z1d.6xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "r6id.12xlarge", - "c6gd.xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "im4gn.xlarge", - "c6in.2xlarge", - "c4.4xlarge", - "m2.2xlarge", "m6gd.8xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r4.xlarge", - "c5d.xlarge", + "m5.12xlarge", + "r5b.8xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "m5n.12xlarge", + "c6a.32xlarge", + "m7g.12xlarge", "d3.8xlarge", - "c6i.2xlarge", - "m6gd.12xlarge", - "c6i.4xlarge", + "c6i.32xlarge", + "r6idn.24xlarge", + "r5n.4xlarge", + "c6id.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", "i3en.6xlarge", - "g5.48xlarge", - "m6i.32xlarge", - "hs1.8xlarge", - "m6gd.16xlarge", - "m4.xlarge", - "r6i.16xlarge", - "d2.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "g3.16xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "d3en.2xlarge", + "m5d.12xlarge", "r5a.8xlarge", - "r5.2xlarge", - "i4i.xlarge", - "d2.xlarge", - "h1.16xlarge", - "m3.medium", - "r5b.16xlarge", - "is4gen.2xlarge", - "x2iedn.8xlarge", - "m5ad.8xlarge", - "c5.9xlarge", - "c5ad.8xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "c6i.32xlarge", - "r5n.24xlarge", - "r6id.16xlarge", - "x1e.16xlarge", - "m5ad.4xlarge", - "c5d.9xlarge", - "i3en.24xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", + "m6id.8xlarge", + "r5n.16xlarge", + "d3.xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "m6id.16xlarge", + "r6a.24xlarge", + "x1e.4xlarge", + "r6idn.16xlarge", + "p2.xlarge", + "c6g.xlarge", + "c6gd.8xlarge", + "d3en.6xlarge", + "c4.4xlarge", "g4dn.8xlarge", - "m5dn.2xlarge", - "g5.24xlarge", - "r5dn.2xlarge" + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "c5ad.16xlarge", + "m6a.16xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" ] }, - "eu-west-2": { + "eu-central-2": { "enum": [ - "c5.12xlarge", - "g5.12xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "g5.8xlarge", - "m5d.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "r6i.24xlarge", - "z1d.3xlarge", - "z1d.xlarge", - "c5n.9xlarge", - "m4.10xlarge", - "i3en.12xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", "m6gd.2xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "im4gn.8xlarge", - "c6gd.2xlarge", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r6i.24xlarge", + "r5.24xlarge", + "m5.24xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "c5.9xlarge", + "r6g.12xlarge", "c6gd.4xlarge", - "m6i.4xlarge", - "r5ad.24xlarge", - "g5.2xlarge", - "p3.2xlarge", - "g5.4xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "x1.32xlarge", - "m5ad.24xlarge", - "p3.16xlarge", - "m6a.8xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "x2iedn.24xlarge", - "r5ad.4xlarge", + "i3en.12xlarge", + "m6i.16xlarge", + "m6id.24xlarge", + "m6i.xlarge", + "c6in.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5d.8xlarge", + "c6gd.12xlarge", + "m6id.xlarge", + "c6in.12xlarge", "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "c6gn.xlarge", "r6g.2xlarge", - "z1d.2xlarge", - "r5n.2xlarge", - "i4i.2xlarge", - "x2iedn.4xlarge", - "m5d.24xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "r6gd.8xlarge", - "m6a.4xlarge", - "m6gd.xlarge", - "m6g.16xlarge", - "m5d.12xlarge", - "c6g.16xlarge", - "r6i.xlarge", - "c6gn.2xlarge", + "c6in.24xlarge", "m5.16xlarge", - "m5ad.12xlarge", - "m6a.24xlarge", - "r4.4xlarge", - "m5d.xlarge", - "m5ad.2xlarge", - "d3.xlarge", - "r6gd.4xlarge", + "m6id.12xlarge", + "r6g.4xlarge", "m6g.xlarge", - "r6gd.xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "is4gen.8xlarge", - "r5.24xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "z1d.6xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "m6a.xlarge", - "r4.8xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "c6i.12xlarge", - "m5a.2xlarge", + "c5.4xlarge", + "d3.4xlarge", "c5.24xlarge", - "r5.16xlarge", - "r6i.8xlarge", - "c6gd.xlarge", - "c5d.12xlarge", + "m6i.4xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "i3.8xlarge", + "i4i.2xlarge", + "c6in.4xlarge", + "c6gd.2xlarge", + "m6gd.12xlarge", + "c5d.4xlarge", + "i4i.8xlarge", + "c6gd.16xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "i3en.2xlarge", "r5.12xlarge", - "m4.large", - "r6gd.2xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "im4gn.xlarge", - "i4i.4xlarge", - "r5b.12xlarge", + "x2idn.16xlarge", + "r5.2xlarge", + "i3.xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6in.xlarge", + "d3.8xlarge", "r6g.16xlarge", - "c4.8xlarge", - "r5b.24xlarge", - "i4i.32xlarge", - "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", "r5d.xlarge", - "r5d.12xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "m6id.2xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "m6gd.4xlarge", + "m5.2xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "r5.16xlarge", + "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "i4i.xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "r5.4xlarge", + "m5d.12xlarge", + "m6id.8xlarge", + "m6gd.xlarge", + "m6i.24xlarge", "c5d.18xlarge", + "r6g.8xlarge", + "i3en.24xlarge", + "d3.xlarge", + "i4i.24xlarge", + "m5d.2xlarge", + "r6i.4xlarge", + "c6gd.xlarge", + "c5d.24xlarge", + "x2idn.24xlarge", + "m6id.16xlarge", + "r6i.2xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "m6id.4xlarge", + "c6gd.8xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6g.8xlarge", + "m6id.32xlarge", "i3.16xlarge", - "g4dn.xlarge", - "c5.4xlarge", - "d2.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "r6i.16xlarge", + "d3.2xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "c6in.2xlarge" + ] + }, + "eu-north-1": { + "enum": [ "c6gn.8xlarge", - "c5.2xlarge", - "x1.16xlarge", - "c6i.8xlarge", - "c6gd.12xlarge", - "g3.16xlarge", - "c4.2xlarge", - "c4.4xlarge", - "m6gd.8xlarge", - "m5.12xlarge", - "r5ad.2xlarge", - "r5n.16xlarge", - "im4gn.16xlarge", - "r6g.8xlarge", - "r4.xlarge", - "c5d.xlarge", - "r5a.16xlarge", - "d3.8xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "g5.8xlarge", + "c7i.8xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "m6in.2xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "m6gd.2xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "m6in.32xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "m7i-flex.4xlarge", + "r5d.8xlarge", "c6g.12xlarge", - "c6i.2xlarge", - "c5d.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "g3.8xlarge", - "m6gd.12xlarge", - "c6i.4xlarge", - "i3en.6xlarge", "m6g.2xlarge", - "m6i.24xlarge", - "x2iedn.32xlarge", - "m6a.32xlarge", + "m7i-flex.xlarge", + "r7g.12xlarge", + "r6i.24xlarge", "c5a.16xlarge", - "m5.4xlarge", - "d3.2xlarge", + "r7g.16xlarge", + "r6gd.16xlarge", + "m7i.4xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "r5b.24xlarge", + "r7i.24xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6gd.2xlarge", + "g5.24xlarge", + "r7i.16xlarge", + "c7i.48xlarge", + "r5n.12xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "m7i.8xlarge", "g5.48xlarge", - "m6i.32xlarge", - "m6gd.16xlarge", - "m4.xlarge", - "m5.8xlarge", - "m6a.2xlarge", - "r6i.16xlarge", + "r7i.4xlarge", "d2.2xlarge", + "c5.9xlarge", "d2.4xlarge", - "x2iedn.2xlarge", - "i4i.16xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "c5n.4xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "m6a.48xlarge", - "m6i.12xlarge", - "c5n.xlarge", - "m5a.8xlarge", - "m6g.4xlarge", - "is4gen.xlarge", - "i4i.xlarge", - "m5ad.xlarge", + "c5a.12xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "c6gd.4xlarge", + "r7g.2xlarge", + "c5n.9xlarge", + "c5d.18xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "c6gn.xlarge", + "i3en.12xlarge", + "m6i.16xlarge", "c6i.16xlarge", + "m6idn.4xlarge", + "r5dn.24xlarge", + "m6i.xlarge", + "m6in.4xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "m6idn.24xlarge", "m5d.4xlarge", - "d2.xlarge", - "z1d.12xlarge", - "m6i.2xlarge", - "m6g.12xlarge", + "r5b.2xlarge", + "c7i.12xlarge", + "m5d.8xlarge", + "r6g.xlarge", + "c6gd.12xlarge", + "c7i.16xlarge", "g5.xlarge", - "g3s.xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r6g.2xlarge", + "c6in.24xlarge", + "m6in.24xlarge", + "r5d.24xlarge", "r5b.16xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "r5b.8xlarge", - "i3.8xlarge", - "r5.8xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "r5n.8xlarge", + "m7i-flex.8xlarge", + "x2iedn.2xlarge", + "g4dn.4xlarge", "x2iedn.8xlarge", - "is4gen.2xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "r7i.12xlarge", + "g5.2xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c5.4xlarge", + "m6i.4xlarge", + "c5.24xlarge", "c5a.4xlarge", - "c5.9xlarge", - "m5ad.8xlarge", - "m6gd.4xlarge", - "r5b.xlarge", - "r5.4xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c4.large", - "c6i.32xlarge", - "r5n.24xlarge", - "m5.2xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "m5.xlarge", - "c6gn.4xlarge", - "c5n.2xlarge", - "m5d.8xlarge", - "r5b.4xlarge", - "r5n.xlarge", - "r5ad.12xlarge", - "m5ad.4xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "c6gn.16xlarge", - "m6i.xlarge", - "r5d.8xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "r6i.32xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "i4i.8xlarge", - "i3en.xlarge", - "im4gn.4xlarge", - "m6a.16xlarge", "r6gd.12xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "is4gen.4xlarge", - "r5b.2xlarge", - "g4dn.8xlarge", + "m6idn.xlarge", + "c5d.2xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", "g5.16xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "g5.24xlarge", - "im4gn.2xlarge", - "m6i.8xlarge" - ] - }, - "eu-west-3": { - "enum": [ - "c5.12xlarge", - "g4dn.12xlarge", "m5d.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "r6i.24xlarge", - "x2idn.32xlarge", - "c5n.9xlarge", - "i3en.12xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "c6gd.2xlarge", - "im4gn.8xlarge", - "r5ad.24xlarge", - "m6i.4xlarge", - "r5dn.12xlarge", - "c6gd.4xlarge", + "r6i.12xlarge", + "r7i.2xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "r5b.4xlarge", "c6gn.12xlarge", - "i3.xlarge", - "m5ad.24xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "x2iedn.24xlarge", - "r5d.24xlarge", - "r5ad.4xlarge", - "i3.2xlarge", + "c6in.4xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", + "m6gd.12xlarge", "c5d.4xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "c6gn.xlarge", - "r6g.2xlarge", - "r5n.2xlarge", - "x2iedn.4xlarge", - "i4i.2xlarge", - "m5d.24xlarge", - "m6i.16xlarge", - "r5a.24xlarge", - "c6g.8xlarge", + "c7g.2xlarge", "r6gd.8xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", - "m5.16xlarge", - "m5d.xlarge", - "c6gn.2xlarge", - "m5ad.12xlarge", - "c6g.16xlarge", - "r4.4xlarge", - "m5ad.2xlarge", - "r6gd.4xlarge", - "m6g.xlarge", - "r6gd.xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "is4gen.8xlarge", + "i4i.8xlarge", + "x2iedn.16xlarge", "c6gd.16xlarge", - "r5.24xlarge", - "r5n.12xlarge", - "r5d.4xlarge", - "r5dn.24xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "r4.8xlarge", - "g4dn.2xlarge", - "c6i.12xlarge", - "r5dn.xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "r6i.8xlarge", - "c6gd.xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "i3en.2xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", "r5.12xlarge", - "r6gd.2xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "im4gn.xlarge", - "i4i.4xlarge", + "x2idn.16xlarge", + "r5b.8xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m7i.16xlarge", + "m5.xlarge", + "m5.4xlarge", + "m6idn.32xlarge", + "c5.2xlarge", + "c6in.xlarge", + "m7i.xlarge", + "m7g.12xlarge", + "m7i.12xlarge", + "c6i.32xlarge", + "c7g.16xlarge", + "r5n.4xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m7i.48xlarge", + "r6gd.4xlarge", "r6g.16xlarge", - "i4i.32xlarge", - "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", - "r5d.12xlarge", + "r5dn.8xlarge", "r5d.xlarge", - "i3.16xlarge", + "c6g.8xlarge", + "r7i.48xlarge", + "i4i.12xlarge", + "m6idn.2xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m6gd.4xlarge", "g4dn.xlarge", - "d2.8xlarge", - "c6gn.8xlarge", - "c5.4xlarge", - "x1.16xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c6gd.12xlarge", - "m5.12xlarge", - "r5ad.2xlarge", - "r5n.16xlarge", - "im4gn.16xlarge", - "r5a.16xlarge", - "c5d.xlarge", - "r4.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", "r5d.2xlarge", - "c6i.4xlarge", - "i3en.6xlarge", - "m6g.2xlarge", - "m6i.24xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "m5.8xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "x2iedn.2xlarge", - "i4i.16xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "r5dn.4xlarge", - "c5n.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "m6i.12xlarge", - "m5a.8xlarge", + "m5.2xlarge", + "r5dn.xlarge", + "m7i.2xlarge", + "c6in.8xlarge", "c5n.xlarge", - "m6g.4xlarge", - "is4gen.xlarge", - "r5dn.16xlarge", - "i4i.xlarge", - "m5ad.xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "d2.xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", "m6i.2xlarge", + "i3.2xlarge", + "m6i.32xlarge", "m6g.12xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "is4gen.2xlarge", - "x2iedn.8xlarge", - "c5.9xlarge", - "m5ad.8xlarge", - "c5a.4xlarge", + "c7i.4xlarge", + "c5a.xlarge", + "i4i.xlarge", + "r5n.2xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "r5b.xlarge", + "c6g.4xlarge", + "m5d.12xlarge", + "m7g.2xlarge", + "m7g.xlarge", "r5.4xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "r5n.24xlarge", - "c6i.32xlarge", - "m5.2xlarge", - "r6i.2xlarge", - "m5.xlarge", - "r5n.8xlarge", + "c6in.2xlarge", "c5n.2xlarge", + "m6i.24xlarge", + "c7g.xlarge", + "r6g.8xlarge", + "m6idn.8xlarge", + "m6gd.xlarge", + "c6i.xlarge", + "r5n.16xlarge", + "m7i-flex.2xlarge", + "r7g.8xlarge", "c6gn.4xlarge", - "m5d.8xlarge", - "r5n.xlarge", - "r5ad.12xlarge", - "im4gn.2xlarge", - "m5ad.4xlarge", - "c6gd.8xlarge", - "c6gn.16xlarge", - "m6i.xlarge", - "r5d.8xlarge", + "c7g.8xlarge", + "i4i.24xlarge", "i3en.24xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "r6i.32xlarge", - "c5a.12xlarge", + "r5b.12xlarge", + "m5d.2xlarge", + "r5dn.12xlarge", + "m7i.24xlarge", + "r7g.xlarge", + "c6gd.xlarge", + "c5n.18xlarge", + "c5d.24xlarge", "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "r6gd.12xlarge", - "i3en.xlarge", - "im4gn.4xlarge", - "i4i.8xlarge", - "is4gen.4xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "g4dn.8xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", + "x2idn.24xlarge", + "m7g.16xlarge", + "c7i.24xlarge", + "r6i.2xlarge", + "x2iedn.xlarge", + "c5a.24xlarge", "r5dn.2xlarge", - "m6i.8xlarge" - ] - }, - "me-central-1": { - "enum": [ - "c5.12xlarge", - "m5.24xlarge", - "m5d.16xlarge", - "m6gd.2xlarge", - "i3en.12xlarge", - "i3.xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", "c6g.xlarge", - "i3en.2xlarge", - "r6g.2xlarge", + "m6gd.16xlarge", + "c6gd.8xlarge", + "m6idn.12xlarge", + "r7i.8xlarge", + "g4dn.8xlarge", + "r6i.xlarge", "m5d.24xlarge", - "c6g.8xlarge", - "m5d.12xlarge", - "m6gd.xlarge", - "m6g.16xlarge", - "c6g.16xlarge", - "m5d.xlarge", - "m5.16xlarge", - "m6g.xlarge", - "m5d.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", + "r7i.xlarge", + "r5n.xlarge", + "c6i.12xlarge", + "r5dn.4xlarge", "m6g.8xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "r6g.16xlarge", - "c5.xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "c5d.18xlarge", "i3.16xlarge", - "c5.4xlarge", - "c5.2xlarge", - "m6gd.8xlarge", - "m5.12xlarge", - "r6g.8xlarge", - "c5d.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "r5d.2xlarge", - "m6gd.12xlarge", - "i3en.6xlarge", - "m6g.2xlarge", - "m5.4xlarge", - "m6gd.16xlarge", - "m5.8xlarge", - "r5.xlarge", - "i3.4xlarge", - "r5.2xlarge", - "m6g.4xlarge", - "m5d.4xlarge", - "m6g.12xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5.9xlarge", - "m6gd.4xlarge", - "r5.4xlarge", - "i3en.3xlarge", - "m5.2xlarge", - "m5.xlarge", - "m5d.8xlarge", - "r5d.8xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "r5d.16xlarge", - "r6g.4xlarge", + "m6in.16xlarge", + "m7g.4xlarge", + "c6i.8xlarge", + "m5d.xlarge", "i3en.xlarge", - "c6g.4xlarge", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge" + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "c7i.xlarge", + "c7i.2xlarge", + "r5n.24xlarge", + "g5.12xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "r7g.4xlarge", + "g4dn.12xlarge" ] }, - "me-south-1": { + "eu-south-1": { "enum": [ - "c5.12xlarge", - "g4dn.12xlarge", - "m5.24xlarge", - "m5d.16xlarge", - "c5ad.4xlarge", - "r6i.24xlarge", - "c5n.9xlarge", - "i3en.12xlarge", - "m6i.4xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "c5a.xlarge", - "i3en.2xlarge", - "c6gn.xlarge", - "c5ad.12xlarge", - "m6i.16xlarge", - "m5d.24xlarge", - "c6g.8xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", + "c6gn.8xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "x2iedn.24xlarge", "c6g.16xlarge", - "m5.16xlarge", - "c6gn.2xlarge", - "m5d.xlarge", - "m6g.xlarge", - "c5ad.24xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "r5d.4xlarge", - "m6g.8xlarge", + "d2.xlarge", "g4dn.2xlarge", - "c6i.12xlarge", - "c5.24xlarge", - "r5.16xlarge", - "r6i.8xlarge", - "r5.12xlarge", - "c6i.24xlarge", - "c5.xlarge", - "r5d.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "i3.16xlarge", - "g4dn.xlarge", - "d2.8xlarge", - "c6gn.8xlarge", - "c5.4xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "m5.12xlarge", - "c5d.xlarge", - "c5ad.2xlarge", - "c5d.2xlarge", "c6g.12xlarge", - "c6i.2xlarge", - "r5d.2xlarge", - "i3en.6xlarge", - "c6i.4xlarge", + "r5d.8xlarge", + "c5ad.8xlarge", "m6g.2xlarge", - "m6i.24xlarge", + "r6i.24xlarge", "c5a.16xlarge", - "m5.4xlarge", - "c5ad.16xlarge", - "m6i.32xlarge", - "m5.8xlarge", - "r6i.16xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "r5a.xlarge", + "r5b.24xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r5n.12xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "m5a.24xlarge", + "c5.9xlarge", "d2.2xlarge", "d2.4xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "c5n.4xlarge", - "r5.2xlarge", - "m6i.12xlarge", - "c5n.xlarge", - "m6g.4xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "d2.xlarge", - "m6i.2xlarge", - "m6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "c5ad.8xlarge", - "r5.4xlarge", - "i3en.3xlarge", - "c5a.24xlarge", - "c6i.32xlarge", - "m5.2xlarge", - "r6i.2xlarge", - "m5.xlarge", - "c6gn.4xlarge", - "c5n.2xlarge", - "m5d.8xlarge", - "c6gn.16xlarge", - "r5d.8xlarge", - "m6i.xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "r6i.12xlarge", - "r6i.32xlarge", "c5a.12xlarge", - "r6i.4xlarge", - "c5ad.xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "i3en.xlarge", - "c6g.4xlarge", - "g4dn.8xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "m6i.8xlarge" - ] - }, - "sa-east-1": { - "enum": [ - "c5.12xlarge", - "i2.xlarge", - "m5zn.6xlarge", - "c3.4xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "m5d.16xlarge", - "r5ad.16xlarge", - "c5ad.4xlarge", - "x2idn.16xlarge", - "r6i.24xlarge", - "x2idn.32xlarge", - "m4.10xlarge", + "r6g.12xlarge", "c5n.9xlarge", - "x1e.4xlarge", + "g4dn.16xlarge", + "c6gn.xlarge", "i3en.12xlarge", - "r5a.xlarge", - "t1.micro", - "m5a.24xlarge", - "c6gd.2xlarge", - "r5ad.24xlarge", - "c6gd.4xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "r5dn.24xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "m5d.4xlarge", + "m5a.12xlarge", + "r5b.2xlarge", + "r6g.xlarge", + "m5d.8xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r6g.2xlarge", + "c6in.24xlarge", + "r5d.24xlarge", + "r5b.16xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "r5n.8xlarge", + "m6a.32xlarge", + "r5a.16xlarge", + "m5a.2xlarge", + "x2iedn.2xlarge", + "r5a.4xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", "m6i.4xlarge", + "c5.24xlarge", + "c5a.4xlarge", + "c5d.2xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "m5a.8xlarge", + "i3.8xlarge", + "c5ad.xlarge", + "i4i.2xlarge", + "x2iedn.32xlarge", + "r5b.4xlarge", "c6gn.12xlarge", - "c1.xlarge", - "m5ad.24xlarge", - "x1.32xlarge", - "i3.xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5ad.4xlarge", - "x2iedn.24xlarge", - "r5d.24xlarge", - "i3.2xlarge", + "c6in.4xlarge", + "c5ad.2xlarge", "c5d.4xlarge", - "m1.medium", - "c6g.xlarge", + "i4i.8xlarge", + "x2iedn.16xlarge", "m5a.xlarge", - "c5a.xlarge", - "r3.4xlarge", - "m5a.16xlarge", - "r6gd.16xlarge", - "c6gn.xlarge", + "i4i.32xlarge", + "m5.12xlarge", "i3en.2xlarge", - "g2.2xlarge", + "r5.12xlarge", + "x2idn.16xlarge", + "r5.2xlarge", + "i3.xlarge", + "r5b.8xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6in.xlarge", + "c5ad.4xlarge", + "c6i.32xlarge", + "m6a.8xlarge", + "r5n.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "r5a.2xlarge", "c5ad.12xlarge", - "r6g.2xlarge", - "m1.xlarge", - "i2.2xlarge", - "r5n.2xlarge", - "i4i.2xlarge", - "m6i.16xlarge", - "m5d.24xlarge", - "x2iedn.4xlarge", - "r5a.24xlarge", + "r5d.xlarge", "c6g.8xlarge", - "r6gd.8xlarge", - "m3.xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6g.16xlarge", - "m5.16xlarge", - "c6gn.2xlarge", - "m5ad.12xlarge", - "r4.4xlarge", - "c3.large", - "m5ad.2xlarge", - "r6gd.4xlarge", - "c3.2xlarge", - "m6g.xlarge", - "i2.4xlarge", - "c5ad.24xlarge", - "r6gd.xlarge", + "i4i.12xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "m6a.12xlarge", + "m5.2xlarge", + "r5dn.xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "r5.16xlarge", + "c5n.xlarge", "c5a.8xlarge", - "m5d.2xlarge", - "m5a.4xlarge", - "cc1.4xlarge", + "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "i4i.xlarge", + "m6g.12xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "m6a.xlarge", + "r5n.2xlarge", "c5a.2xlarge", - "r5.24xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "r5a.12xlarge", + "r5b.xlarge", + "m5d.12xlarge", + "r5.4xlarge", + "r5a.8xlarge", + "c5n.2xlarge", + "m6i.24xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "r5b.12xlarge", + "r5n.16xlarge", + "i3en.24xlarge", + "c6gn.4xlarge", + "c6i.xlarge", + "i4i.24xlarge", + "m5a.4xlarge", + "m6a.4xlarge", + "r5dn.12xlarge", + "r6i.4xlarge", + "m5d.2xlarge", + "c5n.18xlarge", "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", + "m6a.2xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "x2iedn.xlarge", + "r6i.2xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "r5dn.2xlarge", + "c5ad.24xlarge", + "r6i.xlarge", + "g4dn.8xlarge", + "m5d.24xlarge", + "r5n.xlarge", "m6g.8xlarge", - "m1.small", - "r4.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", + "r5dn.4xlarge", + "m6a.48xlarge", "c6i.12xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "m5zn.3xlarge", - "r6i.8xlarge", - "c6gd.xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "m4.large", - "c6i.24xlarge", - "m5a.12xlarge", - "r5b.12xlarge", - "i4i.4xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "r5b.24xlarge", - "i4i.32xlarge", - "m5zn.2xlarge", - "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "x1e.8xlarge", "i3.16xlarge", - "c5d.18xlarge", - "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "r3.2xlarge", - "c4.2xlarge", - "c5.2xlarge", - "c6gn.8xlarge", + "m6a.16xlarge", + "c5ad.16xlarge", "c6i.8xlarge", - "c6gd.12xlarge", - "x1.16xlarge", - "c4.4xlarge", - "m2.2xlarge", - "m5.12xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r5n.16xlarge", - "r5a.16xlarge", - "c5ad.2xlarge", - "r4.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "r5n.24xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "m6a.24xlarge", + "c6in.2xlarge", + "g4dn.12xlarge" + ] + }, + "eu-south-2": { + "enum": [ + "r5d.12xlarge", + "c7i.8xlarge", + "i3.4xlarge", + "c5.xlarge", + "c6g.2xlarge", + "m6gd.2xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "m7i-flex.4xlarge", + "m7i-flex.xlarge", "c6g.12xlarge", - "c6i.2xlarge", - "c5d.xlarge", - "r5a.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "cg1.4xlarge", - "c6i.4xlarge", - "i3en.6xlarge", + "r5d.8xlarge", "m6g.2xlarge", - "m5zn.12xlarge", - "hi1.4xlarge", - "m6i.24xlarge", - "x2iedn.32xlarge", - "m2.4xlarge", - "m5.4xlarge", - "c5a.16xlarge", - "c5ad.16xlarge", - "hs1.8xlarge", - "m6i.32xlarge", - "m4.xlarge", - "m5.8xlarge", - "r6i.16xlarge", + "r7g.12xlarge", + "r7g.16xlarge", + "m7i.4xlarge", + "r5.24xlarge", + "m5.24xlarge", + "r7i.24xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c7i.48xlarge", + "r7i.16xlarge", + "c5.12xlarge", + "r7i.4xlarge", + "m7i.8xlarge", + "c5.9xlarge", + "r6g.12xlarge", + "r7g.2xlarge", + "i3en.12xlarge", + "m5d.4xlarge", + "c7i.12xlarge", + "r6g.xlarge", + "m5d.8xlarge", + "c7i.16xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m5.16xlarge", + "m7i-flex.8xlarge", "x2iedn.2xlarge", - "i4i.16xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "c5n.4xlarge", - "m4.4xlarge", - "r5a.8xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "r7i.12xlarge", + "c5.4xlarge", + "c5.24xlarge", + "c5d.2xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "r7i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "m6gd.12xlarge", + "c5d.4xlarge", + "c7g.2xlarge", + "x2iedn.16xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "i3en.2xlarge", + "r5.12xlarge", + "i3.xlarge", "r5.2xlarge", - "cr1.8xlarge", - "m6i.12xlarge", - "m5a.8xlarge", - "c5n.xlarge", + "x2idn.16xlarge", + "x2idn.32xlarge", "m6g.4xlarge", - "x1e.32xlarge", - "i4i.xlarge", - "m5ad.xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "cc2.8xlarge", - "m3.large", - "c1.medium", - "x1e.xlarge", - "m3.medium", - "m6i.2xlarge", - "m6g.12xlarge", - "r5b.8xlarge", - "r5b.16xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "x2iedn.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "m5ad.8xlarge", - "c3.xlarge", - "r5b.xlarge", - "c5ad.8xlarge", - "r5.4xlarge", + "m7i.16xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "m7i.xlarge", + "m7g.12xlarge", + "m7i.12xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "r6g.16xlarge", + "m7i.48xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r7i.48xlarge", + "r5d.16xlarge", + "c7g.4xlarge", "i3en.3xlarge", - "x2iedn.16xlarge", - "r5a.2xlarge", - "c5a.24xlarge", - "r5n.4xlarge", - "x1e.2xlarge", - "c6i.32xlarge", - "c4.large", - "r5n.24xlarge", + "i3en.6xlarge", + "m6gd.4xlarge", "m5.2xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "c3.8xlarge", - "m5.xlarge", - "c5n.2xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", - "r5b.4xlarge", - "x1e.16xlarge", - "r5ad.12xlarge", - "r5n.xlarge", - "m5ad.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", - "c6gn.16xlarge", - "m2.xlarge", - "m6i.xlarge", - "i2.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "x2idn.24xlarge", + "m7i.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "c7i.4xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "m5d.12xlarge", + "m7g.2xlarge", + "m7g.xlarge", + "r5.4xlarge", + "m6gd.xlarge", + "c7g.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", "i3en.24xlarge", - "r6i.12xlarge", - "r5d.8xlarge", - "r6i.32xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "g4dn.16xlarge", - "c5ad.xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "i4i.8xlarge", - "r6gd.12xlarge", + "c7g.8xlarge", + "r7g.8xlarge", + "m7i-flex.2xlarge", + "r7g.xlarge", + "m5d.2xlarge", + "m7i.24xlarge", + "c5d.24xlarge", + "x2idn.24xlarge", + "m7g.16xlarge", + "x2iedn.xlarge", + "c7i.24xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "r7i.8xlarge", + "m5d.24xlarge", + "r7i.xlarge", + "m6g.8xlarge", + "i3.16xlarge", + "m7g.4xlarge", + "m5d.xlarge", "i3en.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "r5b.2xlarge", - "g4dn.8xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "m6i.8xlarge", - "m1.large" + "r5.xlarge", + "c7i.xlarge", + "c7i.2xlarge", + "m5.8xlarge", + "r7g.4xlarge" ] }, - "us-east-1": { + "eu-west-1": { "enum": [ - "g5.12xlarge", - "r6i.24xlarge", - "m6gd.2xlarge", - "g5.2xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "m1.medium", - "m5a.xlarge", - "m5a.16xlarge", - "c6gn.xlarge", - "i2.2xlarge", - "d3en.12xlarge", - "m5d.24xlarge", - "d3en.xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "m3.xlarge", - "m6a.4xlarge", - "m5d.12xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6gn.2xlarge", - "r4.4xlarge", - "d3.xlarge", - "c5ad.24xlarge", - "m5a.4xlarge", + "x1e.2xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c7gn.xlarge", + "c5a.16xlarge", "r5.24xlarge", - "r6a.2xlarge", - "r5dn.24xlarge", - "m6g.8xlarge", - "m1.small", - "c5.24xlarge", - "r5.16xlarge", - "m4.large", - "c6i.24xlarge", - "r6g.16xlarge", + "x1.32xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "r3.2xlarge", "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6a.12xlarge", + "r7i.16xlarge", + "c7a.4xlarge", + "r7i.4xlarge", + "m5dn.4xlarge", + "c4.xlarge", + "d3en.12xlarge", + "d2.4xlarge", + "r3.8xlarge", + "c6gn.xlarge", + "r7gd.16xlarge", + "r7a.32xlarge", + "m6idn.4xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "c3.large", + "r5b.2xlarge", + "c7i.16xlarge", + "c7gd.12xlarge", "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", + "m6id.xlarge", + "is4gen.4xlarge", + "m7a.32xlarge", + "m6a.32xlarge", + "r4.8xlarge", + "m7i-flex.8xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6a.4xlarge", + "r6g.4xlarge", + "r6idn.32xlarge", + "c7a.xlarge", + "h1.16xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c3.xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "c5ad.xlarge", + "r5b.4xlarge", + "c6in.4xlarge", + "c7a.48xlarge", + "c5ad.2xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", "x1e.8xlarge", - "d2.8xlarge", - "c4.2xlarge", - "c6gd.12xlarge", + "hs1.8xlarge", + "i4i.32xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "i4g.8xlarge", + "m7i.16xlarge", + "r6id.4xlarge", + "m5zn.6xlarge", + "c5.2xlarge", + "c1.medium", + "m5zn.2xlarge", + "m7a.2xlarge", + "c7g.16xlarge", + "g3s.xlarge", + "r6gd.4xlarge", + "c5ad.12xlarge", + "c6a.xlarge", + "r6in.12xlarge", + "r5ad.24xlarge", + "r5d.16xlarge", + "r6idn.8xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "x2gd.xlarge", + "m7a.12xlarge", + "c5a.2xlarge", + "c7gn.2xlarge", + "cr1.8xlarge", + "c6g.4xlarge", + "r5a.12xlarge", + "p2.8xlarge", + "m7g.2xlarge", + "r5b.xlarge", + "c5n.2xlarge", + "m5dn.24xlarge", "r6g.8xlarge", - "c5ad.2xlarge", - "d3en.6xlarge", - "d3en.8xlarge", - "c6g.12xlarge", + "im4gn.xlarge", + "i4i.24xlarge", + "r5dn.12xlarge", + "r6i.4xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "r6in.4xlarge", + "m7g.16xlarge", + "i2.2xlarge", + "r6idn.xlarge", + "x2iedn.xlarge", "r4.16xlarge", - "r5d.2xlarge", - "h1.2xlarge", - "cg1.4xlarge", - "h1.8xlarge", - "m5zn.12xlarge", - "m5n.16xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.8xlarge", - "d2.2xlarge", - "x2iedn.2xlarge", + "r5dn.2xlarge", + "m6gd.16xlarge", + "c5ad.24xlarge", + "m4.large", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", + "m1.large", + "d2.8xlarge", "r5.xlarge", - "i3.4xlarge", - "c5n.xlarge", - "r5dn.16xlarge", + "d3.2xlarge", + "r7a.2xlarge", + "c7i.xlarge", + "c7i.2xlarge", + "r5n.24xlarge", + "r7a.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "im4gn.8xlarge", + "m6a.24xlarge", + "i4g.16xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "c1.xlarge", + "m3.medium", + "i4g.2xlarge", + "r7a.16xlarge", + "c5.xlarge", + "d3en.8xlarge", "is4gen.xlarge", + "m6i.12xlarge", + "c7gn.12xlarge", + "c5ad.8xlarge", + "r7g.12xlarge", + "z1d.12xlarge", + "m1.medium", + "r7g.16xlarge", + "r6in.32xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", + "r7i.24xlarge", + "r5.8xlarge", + "c6id.24xlarge", + "c6id.12xlarge", + "h1.2xlarge", + "c6id.2xlarge", + "g5.48xlarge", + "im4gn.16xlarge", + "d2.2xlarge", + "c5.9xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "m6i.16xlarge", "c6i.16xlarge", - "r5b.8xlarge", - "g5.xlarge", - "x2iedn.xlarge", - "r6a.48xlarge", - "r5b.xlarge", - "x1e.2xlarge", - "m5n.4xlarge", + "p3.8xlarge", + "m6in.4xlarge", + "m5n.2xlarge", + "m7gd.2xlarge", + "c7i.12xlarge", + "m5d.8xlarge", + "c6a.16xlarge", + "c7gd.16xlarge", + "r6g.2xlarge", + "m6in.24xlarge", + "m3.2xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "c6id.16xlarge", + "g5.2xlarge", + "r5ad.4xlarge", + "i4g.xlarge", + "c5.4xlarge", + "c5.24xlarge", + "d3.4xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", + "c5d.2xlarge", + "d3en.xlarge", + "cg1.4xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "c7a.12xlarge", "m5n.24xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", + "r6in.8xlarge", + "m6i.8xlarge", "m5.xlarge", - "r5b.4xlarge", - "r5ad.12xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", - "r6a.16xlarge", - "m3.2xlarge", - "m5dn.8xlarge", - "r6gd.12xlarge", - "g5.16xlarge", - "r6g.xlarge", - "r6id.24xlarge", - "im4gn.2xlarge", - "c3.4xlarge", - "m5n.12xlarge", - "m5d.16xlarge", - "c5ad.4xlarge", - "c7g.12xlarge", - "z1d.3xlarge", - "x1e.4xlarge", - "i3en.12xlarge", - "r5ad.24xlarge", - "c6gd.4xlarge", - "r5dn.12xlarge", - "m5dn.xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "m5ad.24xlarge", + "m5.4xlarge", + "z1d.2xlarge", "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "c3.2xlarge", "m6a.8xlarge", - "r5ad.4xlarge", - "i3.2xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "r6g.2xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m6idn.2xlarge", + "c7g.4xlarge", + "r6a.16xlarge", + "i3en.3xlarge", + "m5.2xlarge", + "m7i.2xlarge", + "r7a.4xlarge", "r5n.2xlarge", - "i4i.2xlarge", - "r6gd.8xlarge", - "m6g.16xlarge", - "m5.16xlarge", - "m5ad.12xlarge", - "m6a.24xlarge", - "m5n.xlarge", - "m6g.xlarge", - "d3en.2xlarge", - "m5d.2xlarge", - "is4gen.8xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", - "m5dn.4xlarge", - "r4.8xlarge", - "c6i.12xlarge", - "c7g.8xlarge", - "r6i.8xlarge", - "r5b.12xlarge", - "c4.8xlarge", - "i4i.32xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r3.2xlarge", - "x1.16xlarge", - "g3.16xlarge", - "r5n.16xlarge", - "r5a.16xlarge", - "r5a.12xlarge", - "c6in.32xlarge", - "m6g.2xlarge", + "m6a.xlarge", + "c5.18xlarge", + "m5dn.16xlarge", + "m7g.xlarge", + "m6gd.xlarge", "m6i.24xlarge", - "m6a.32xlarge", - "d3.2xlarge", - "m6a.2xlarge", + "m6idn.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "c6gn.4xlarge", + "i3en.24xlarge", + "c7g.8xlarge", + "r7g.8xlarge", + "m6a.4xlarge", + "r7g.xlarge", + "m7i.24xlarge", "c5n.18xlarge", - "c6in.16xlarge", - "cr1.8xlarge", - "m6i.12xlarge", - "m5a.8xlarge", - "m5dn.24xlarge", - "x1e.32xlarge", - "m5ad.xlarge", - "m3.large", - "z1d.12xlarge", - "m6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "m6gd.4xlarge", - "r6id.2xlarge", - "r5.4xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c4.large", - "m5.2xlarge", - "c3.8xlarge", - "c5n.2xlarge", - "c6gn.16xlarge", - "m2.xlarge", - "i2.8xlarge", - "r5d.16xlarge", - "m5dn.12xlarge", - "r6g.4xlarge", - "i4i.8xlarge", - "m6a.16xlarge", - "r5b.2xlarge", - "m5n.2xlarge", - "m6i.8xlarge", - "i2.xlarge", "p2.16xlarge", - "g5.8xlarge", - "r6a.8xlarge", - "z1d.xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "r6id.8xlarge", - "c6in.24xlarge", - "x2iedn.24xlarge", - "c7g.4xlarge", - "r3.4xlarge", - "g2.2xlarge", - "c5ad.12xlarge", - "z1d.2xlarge", - "x2iedn.4xlarge", - "m6gd.xlarge", "m5ad.2xlarge", - "r6gd.4xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "r5d.4xlarge", - "r6id.4xlarge", - "r5a.4xlarge", - "m6a.xlarge", - "r5dn.xlarge", - "m5a.2xlarge", - "m5zn.3xlarge", - "c5d.12xlarge", - "m5a.12xlarge", - "c7g.16xlarge", - "i4i.4xlarge", - "r5b.24xlarge", - "m5zn.2xlarge", - "r6a.24xlarge", + "m2.xlarge", + "c7gd.xlarge", + "m5dn.12xlarge", + "c7i.24xlarge", + "r6i.2xlarge", + "c6a.48xlarge", + "z1d.6xlarge", + "r7i.8xlarge", + "c6i.12xlarge", + "m6id.32xlarge", "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "c5.2xlarge", "c6i.8xlarge", - "m5.12xlarge", - "im4gn.16xlarge", - "c5d.2xlarge", - "c6in.12xlarge", - "g3.8xlarge", - "m5dn.16xlarge", - "hi1.4xlarge", - "m5n.8xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "r6in.16xlarge", + "m5dn.2xlarge", + "c7a.32xlarge", + "c6in.2xlarge", + "c7i.8xlarge", + "i3.4xlarge", + "r6in.xlarge", + "m6in.2xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "c6g.16xlarge", + "c6id.8xlarge", + "m6in.32xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "m7i.4xlarge", + "h1.4xlarge", + "m5.24xlarge", + "r5b.24xlarge", + "r6gd.2xlarge", + "c7i.48xlarge", + "r6in.2xlarge", + "r5n.12xlarge", + "m7i.8xlarge", + "r4.xlarge", + "r6idn.4xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "c6gd.4xlarge", + "c5n.9xlarge", + "r6a.xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "r5dn.24xlarge", + "c3.4xlarge", "m2.4xlarge", - "m5.4xlarge", - "c5ad.16xlarge", - "c6in.4xlarge", - "i4i.16xlarge", - "r5dn.4xlarge", - "m6a.48xlarge", - "p2.8xlarge", - "m6g.4xlarge", + "r6id.16xlarge", + "c6id.32xlarge", + "m4.16xlarge", + "x1.16xlarge", "m5d.4xlarge", - "cc2.8xlarge", - "c1.medium", - "x1e.xlarge", + "r6g.xlarge", + "m5zn.3xlarge", + "cc1.4xlarge", + "c6id.xlarge", + "g5.xlarge", + "r5d.24xlarge", + "m5n.xlarge", + "c6in.24xlarge", + "r5b.16xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "m7a.4xlarge", + "r7a.12xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r7i.12xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "m7a.8xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "c7gn.4xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "m3.large", + "i4g.4xlarge", + "c7gd.8xlarge", + "c5ad.4xlarge", + "h1.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "m7i.48xlarge", + "r6a.32xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "r6idn.12xlarge", + "c6g.8xlarge", + "r6id.8xlarge", + "g3.4xlarge", + "r7i.48xlarge", + "m6id.2xlarge", + "r7gd.4xlarge", + "i4i.12xlarge", + "r6idn.2xlarge", + "r7gd.2xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r6in.24xlarge", + "r5dn.xlarge", + "r5.16xlarge", + "c7i.4xlarge", "m6i.2xlarge", - "g3s.xlarge", - "r6g.12xlarge", - "c3.xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5.4xlarge", + "m5dn.8xlarge", "c7g.xlarge", + "c7a.8xlarge", + "r5b.12xlarge", + "m5n.16xlarge", + "m7i-flex.2xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m7a.xlarge", + "m5d.2xlarge", + "r7a.8xlarge", + "c6gd.xlarge", + "m5zn.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "c7gn.8xlarge", + "m2.2xlarge", + "x1e.16xlarge", + "is4gen.8xlarge", "c5a.24xlarge", + "m5n.4xlarge", "r6id.xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", - "r6a.xlarge", + "m6id.4xlarge", + "x2gd.16xlarge", + "r7a.48xlarge", + "r5ad.12xlarge", "r5n.xlarge", - "r5d.8xlarge", - "m6i.xlarge", - "c7g.2xlarge", - "r6i.32xlarge", - "g4dn.16xlarge", - "c5ad.xlarge", - "c4.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", + "c7a.2xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", + "r6id.24xlarge", "im4gn.4xlarge", - "r4.2xlarge", - "is4gen.4xlarge", + "i4i.4xlarge", "c6g.2xlarge", - "c5.18xlarge", - "m1.large", + "r6i.8xlarge", + "m7i-flex.4xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r6a.48xlarge", + "m7i-flex.xlarge", + "c7gn.16xlarge", + "z1d.3xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "g5.24xlarge", "c5.12xlarge", - "m5zn.6xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "r6a.4xlarge", - "c5n.9xlarge", - "c6in.8xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "i3en.12xlarge", "r6id.32xlarge", - "m4.10xlarge", + "m6id.24xlarge", + "m6i.xlarge", "d3en.4xlarge", - "t1.micro", - "im4gn.8xlarge", - "c6gd.2xlarge", - "r6a.12xlarge", + "m5n.8xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "m5dn.xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "m6id.12xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", + "hi1.4xlarge", "m6i.4xlarge", + "m6idn.xlarge", + "g5.16xlarge", + "c7gd.2xlarge", + "r6i.12xlarge", + "r7i.2xlarge", "p3.2xlarge", - "g5.4xlarge", - "c1.xlarge", - "p3.16xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "c5a.xlarge", - "r6a.32xlarge", - "m1.xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.16xlarge", - "h1.4xlarge", - "c3.large", - "c3.2xlarge", + "r6gd.8xlarge", + "x2gd.2xlarge", + "c7a.24xlarge", "i2.4xlarge", - "r6gd.xlarge", - "cc1.4xlarge", - "c5d.24xlarge", - "z1d.6xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "r6id.12xlarge", - "c6gd.xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "im4gn.xlarge", - "c6in.2xlarge", - "c4.4xlarge", - "m2.2xlarge", "m6gd.8xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r4.xlarge", - "c5d.xlarge", + "m5.12xlarge", + "r5b.8xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "m5n.12xlarge", + "m7i.xlarge", + "c6a.32xlarge", + "m7i.12xlarge", + "m7g.12xlarge", "d3.8xlarge", - "c6i.2xlarge", - "m6gd.12xlarge", - "c6i.4xlarge", + "c6i.32xlarge", + "r6idn.24xlarge", + "r5n.4xlarge", + "c6id.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", + "x2gd.8xlarge", "i3en.6xlarge", - "g5.48xlarge", - "m6i.32xlarge", - "hs1.8xlarge", - "m6gd.16xlarge", - "m4.xlarge", - "r6i.16xlarge", - "d2.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "g3.16xlarge", + "m6g.12xlarge", + "x2gd.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "d3en.2xlarge", + "m7a.16xlarge", + "m5d.12xlarge", "r5a.8xlarge", - "r5.2xlarge", - "i4i.xlarge", - "d2.xlarge", - "h1.16xlarge", - "m3.medium", - "r5b.16xlarge", - "is4gen.2xlarge", - "x2iedn.8xlarge", - "m5ad.8xlarge", - "c5.9xlarge", - "c5ad.8xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "c6i.32xlarge", - "r5n.24xlarge", - "r6id.16xlarge", - "x1e.16xlarge", - "m5ad.4xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", + "m6id.8xlarge", + "r7a.xlarge", + "r5n.16xlarge", + "d3.xlarge", + "c7a.16xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "x1e.4xlarge", + "r6a.24xlarge", + "m6id.16xlarge", + "p2.xlarge", + "r6idn.16xlarge", + "c6g.xlarge", + "m7a.24xlarge", + "t1.micro", + "c6gd.8xlarge", + "d3en.6xlarge", + "c4.4xlarge", + "m1.xlarge", + "x2gd.4xlarge", "g4dn.8xlarge", - "m5dn.2xlarge", - "g5.24xlarge", - "r5dn.2xlarge" + "r7i.xlarge", + "m1.small", + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "m6a.16xlarge", + "m7a.48xlarge", + "c5ad.16xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" ] }, - "us-east-2": { + "eu-west-2": { "enum": [ - "r6i.24xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "r5d.12xlarge", + "r6id.24xlarge", + "i3.4xlarge", + "im4gn.4xlarge", + "c5.xlarge", + "is4gen.xlarge", + "i4i.4xlarge", + "m6i.12xlarge", + "c6g.2xlarge", + "r6i.8xlarge", "m6gd.2xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "c6id.8xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "z1d.3xlarge", + "m5ad.xlarge", + "r6i.24xlarge", + "z1d.12xlarge", + "m4.2xlarge", + "c5a.16xlarge", + "r6gd.16xlarge", + "r5.24xlarge", "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "m5a.xlarge", - "m5a.16xlarge", - "c6gn.xlarge", - "i2.2xlarge", - "m5d.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "m6a.4xlarge", - "m5d.12xlarge", - "r6i.xlarge", - "m5d.xlarge", + "m5.24xlarge", "c6gn.2xlarge", - "r4.4xlarge", - "d3.xlarge", - "c5ad.24xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "r6a.2xlarge", - "r5dn.24xlarge", - "m6g.8xlarge", - "c5.24xlarge", - "r5.16xlarge", - "m4.large", - "c6i.24xlarge", - "r6g.16xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "c6a.8xlarge", + "r5b.24xlarge", + "r5.8xlarge", "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", - "x1e.8xlarge", - "d2.8xlarge", - "c4.2xlarge", - "c6gd.12xlarge", - "r6g.8xlarge", - "c5ad.2xlarge", - "c6g.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "h1.2xlarge", - "h1.8xlarge", - "m5zn.12xlarge", - "m5n.16xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c6id.24xlarge", + "c6id.12xlarge", + "r6gd.2xlarge", + "g5.24xlarge", + "r5n.12xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "r4.xlarge", + "g5.48xlarge", + "r4.2xlarge", + "im4gn.16xlarge", + "c6id.2xlarge", + "c5.9xlarge", + "m5a.24xlarge", + "c4.xlarge", "d2.2xlarge", - "x2iedn.2xlarge", - "r5.xlarge", - "i3.4xlarge", - "c5n.xlarge", - "r5dn.16xlarge", - "is4gen.xlarge", - "c6i.16xlarge", - "r5b.8xlarge", - "x2iedn.xlarge", - "r6a.48xlarge", + "d2.4xlarge", + "c5a.12xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "c6gd.4xlarge", + "r4.4xlarge", + "g4dn.16xlarge", + "c6gn.xlarge", + "m4.4xlarge", + "r6id.32xlarge", + "i3en.12xlarge", + "c6i.16xlarge", + "p3.8xlarge", + "m6i.16xlarge", + "m6i.xlarge", + "r6id.16xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "c6id.32xlarge", + "m4.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "m5a.12xlarge", + "r5b.2xlarge", + "m5d.8xlarge", + "r6g.xlarge", + "c6gd.12xlarge", + "c6id.xlarge", + "c6a.16xlarge", + "c4.8xlarge", + "g5.xlarge", + "r5ad.8xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "r6g.2xlarge", + "is4gen.4xlarge", + "r5b.16xlarge", + "m4.xlarge", + "m5.16xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "r4.8xlarge", + "c6a.24xlarge", + "c6a.2xlarge", + "m6a.32xlarge", + "r5a.16xlarge", + "m5a.2xlarge", + "x2iedn.2xlarge", + "r5a.4xlarge", + "c6id.16xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "g5.2xlarge", + "im4gn.2xlarge", + "r5ad.4xlarge", + "c5.4xlarge", + "d3.4xlarge", + "m6i.4xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "c5.24xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "g5.16xlarge", + "m5d.16xlarge", + "z1d.xlarge", + "r6i.12xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "p3.2xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "r5b.4xlarge", + "c6gn.12xlarge", + "c6in.4xlarge", + "m6gd.12xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "r5ad.2xlarge", + "r6gd.8xlarge", + "i4i.8xlarge", + "x2iedn.16xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "c4.large", + "c6a.4xlarge", + "i3en.2xlarge", + "r5.12xlarge", + "i3.xlarge", + "r6gd.xlarge", + "r5.2xlarge", + "x2idn.16xlarge", + "r5b.8xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "r6id.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "z1d.2xlarge", + "c6in.xlarge", + "c6a.32xlarge", + "is4gen.2xlarge", + "d3.8xlarge", + "r5ad.16xlarge", + "c6i.32xlarge", + "m5ad.4xlarge", + "m6a.8xlarge", + "g3s.xlarge", + "c6id.4xlarge", + "r5n.4xlarge", + "r6gd.4xlarge", + "r6g.16xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "c6a.xlarge", + "r6id.8xlarge", + "i4i.12xlarge", + "g3.4xlarge", + "c4.2xlarge", + "r5d.16xlarge", + "r5ad.24xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "m6gd.4xlarge", + "m6a.12xlarge", + "g4dn.xlarge", + "m5.2xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "c5n.xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "i4i.xlarge", + "m6g.12xlarge", + "g3.16xlarge", + "c5a.xlarge", + "r5n.2xlarge", + "m6a.xlarge", + "m5ad.12xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "m6i.32xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "r5b.xlarge", + "r5a.8xlarge", + "m5d.12xlarge", + "r5a.12xlarge", + "r5.4xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "c5n.2xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "r5b.12xlarge", + "i3en.24xlarge", + "c6gn.4xlarge", + "r5n.16xlarge", + "im4gn.xlarge", + "d3.xlarge", + "i4i.24xlarge", + "c6i.xlarge", + "m5a.4xlarge", + "m6a.4xlarge", + "m5d.2xlarge", + "r6i.4xlarge", + "c6gd.xlarge", + "c5n.18xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "m5ad.2xlarge", + "m6a.2xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "is4gen.8xlarge", + "r4.16xlarge", + "x2iedn.xlarge", + "r6i.2xlarge", + "c5a.24xlarge", + "c6a.48xlarge", + "c6g.xlarge", + "r6id.xlarge", + "z1d.6xlarge", + "c6gd.8xlarge", + "m6gd.16xlarge", + "c4.4xlarge", + "m4.large", + "g4dn.8xlarge", + "r6i.xlarge", + "r5ad.12xlarge", + "m5d.24xlarge", + "r5n.xlarge", + "m5ad.8xlarge", + "m6g.8xlarge", + "c6i.12xlarge", + "m6a.48xlarge", + "i3.16xlarge", + "m6a.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "im4gn.8xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "m5ad.16xlarge", + "d3.2xlarge", + "r6id.12xlarge", + "r5n.24xlarge", + "g5.12xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "m6a.24xlarge", + "c6in.2xlarge", + "g4dn.12xlarge" + ] + }, + "eu-west-3": { + "enum": [ + "c6gn.8xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "i3.4xlarge", + "im4gn.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "is4gen.xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "m6gd.2xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "r6i.24xlarge", + "c5a.16xlarge", + "r6gd.16xlarge", + "x1.32xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "r5a.xlarge", + "r5.8xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6gd.2xlarge", + "r5n.12xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "r4.xlarge", + "im4gn.16xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "d2.2xlarge", + "d2.4xlarge", + "c5a.12xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "c6gd.4xlarge", + "r4.4xlarge", + "g4dn.16xlarge", + "c6gn.xlarge", + "i3en.12xlarge", + "r5dn.24xlarge", + "c6i.16xlarge", + "m6i.16xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "m5a.12xlarge", + "r6g.xlarge", + "m5d.8xlarge", + "c6gd.12xlarge", + "r5ad.8xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "c6in.24xlarge", + "is4gen.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "r4.8xlarge", + "r5a.16xlarge", + "m5a.2xlarge", + "x2iedn.2xlarge", + "r5a.4xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", + "r5ad.4xlarge", + "c5.4xlarge", + "m6i.4xlarge", + "c5.24xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "m5a.8xlarge", + "i3.8xlarge", + "i4i.2xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "c6in.4xlarge", + "c6gd.2xlarge", + "m6gd.12xlarge", + "c5d.4xlarge", + "r5ad.2xlarge", + "r6gd.8xlarge", + "i4i.8xlarge", + "x2iedn.16xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "i3en.2xlarge", + "r5.12xlarge", + "x2idn.16xlarge", + "i3.xlarge", + "r5.2xlarge", + "r6gd.xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "m5ad.4xlarge", + "c6i.32xlarge", + "r5n.4xlarge", + "r6gd.4xlarge", + "r6g.16xlarge", + "r5a.2xlarge", + "r5dn.8xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "r5ad.24xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "m6gd.4xlarge", + "g4dn.xlarge", + "m5.2xlarge", + "r5dn.xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "r5.16xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "i4i.xlarge", + "m6g.12xlarge", + "c5a.xlarge", + "r5n.2xlarge", + "m5ad.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "r5a.12xlarge", + "r5a.8xlarge", + "r5.4xlarge", + "m5d.12xlarge", + "c5n.2xlarge", + "m6i.24xlarge", + "m6gd.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "r5n.16xlarge", + "i3en.24xlarge", + "c6gn.4xlarge", + "im4gn.xlarge", + "c6i.xlarge", + "i4i.24xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "r6i.4xlarge", + "r5dn.12xlarge", + "c6gd.xlarge", + "c5n.18xlarge", + "m5ad.2xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "is4gen.8xlarge", + "r4.16xlarge", + "x2iedn.xlarge", + "r6i.2xlarge", + "c5a.24xlarge", + "r5dn.2xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "c6gd.8xlarge", + "r6i.xlarge", + "r5ad.12xlarge", + "g4dn.8xlarge", + "m5d.24xlarge", + "r5n.xlarge", + "m5ad.8xlarge", + "m6g.8xlarge", + "r5dn.4xlarge", + "c6i.12xlarge", + "i3.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "m5ad.16xlarge", + "r5n.24xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "im4gn.8xlarge", + "c6in.2xlarge", + "g4dn.12xlarge" + ] + }, + "il-central-1": { + "enum": [ + "c6gn.8xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "g5.8xlarge", + "r6id.24xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "m6gd.2xlarge", + "c6id.8xlarge", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r6i.24xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "r5.8xlarge", + "c6id.24xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c6id.12xlarge", + "g5.24xlarge", + "c5.12xlarge", + "c6id.2xlarge", + "r6i.32xlarge", + "g5.48xlarge", + "c5.9xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "c6gn.xlarge", + "r6id.32xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "i3en.12xlarge", + "m6id.24xlarge", + "m6i.xlarge", + "r6id.16xlarge", + "c6i.4xlarge", + "c6id.32xlarge", + "m5d.4xlarge", + "m5d.8xlarge", + "r6g.xlarge", + "c6id.xlarge", + "g5.xlarge", + "m6id.xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m5.16xlarge", + "m6id.12xlarge", + "c6id.16xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "g5.2xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "d3.4xlarge", + "c5.24xlarge", + "m6i.4xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "g5.16xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c5d.4xlarge", + "i4i.8xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "i3en.2xlarge", + "r5.12xlarge", + "i3.xlarge", + "r5.2xlarge", + "m6i.8xlarge", + "m6g.4xlarge", + "r6id.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "d3.8xlarge", + "c6i.32xlarge", + "c6id.4xlarge", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r6id.8xlarge", + "m6id.2xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m6gd.4xlarge", + "r5d.2xlarge", + "m5.2xlarge", + "r5.16xlarge", + "r5d.4xlarge", + "m6i.2xlarge", + "i3.2xlarge", + "i4i.xlarge", + "m6g.12xlarge", + "m6i.32xlarge", + "c5d.12xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "m5d.12xlarge", + "r5.4xlarge", + "m6id.8xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "c6gn.4xlarge", + "i3en.24xlarge", + "d3.xlarge", + "m5d.2xlarge", + "r6i.4xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "m6id.16xlarge", + "r6i.2xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "m6id.4xlarge", + "r6id.xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6g.8xlarge", + "m6id.32xlarge", + "c6i.12xlarge", + "i3.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "r6i.16xlarge", + "d3.2xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "c6gn.16xlarge", + "m5.8xlarge" + ] + }, + "me-central-1": { + "enum": [ + "i4i.16xlarge", + "g5.8xlarge", + "r5d.12xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "m6gd.2xlarge", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r6i.24xlarge", + "r5.24xlarge", + "m5.24xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "g5.24xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "g5.48xlarge", + "c5.9xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "i3en.12xlarge", + "m6i.16xlarge", + "m6i.xlarge", + "c6in.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5d.8xlarge", + "g5.xlarge", + "c6in.12xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "r6g.2xlarge", + "m5.16xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "g5.2xlarge", + "c5.4xlarge", + "m6i.4xlarge", + "c5.24xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "g5.16xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "c6in.4xlarge", + "m6gd.12xlarge", + "c5d.4xlarge", + "i4i.8xlarge", + "i4i.32xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "i3en.2xlarge", + "r5.12xlarge", + "x2idn.16xlarge", + "r5.2xlarge", + "i3.xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6in.xlarge", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "m6gd.4xlarge", + "m5.2xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "r5.16xlarge", + "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "m6g.12xlarge", + "i4i.xlarge", + "c5d.12xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "m5d.12xlarge", + "r5.4xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "i3en.24xlarge", + "i4i.24xlarge", + "m5d.2xlarge", + "r6i.4xlarge", + "c5d.24xlarge", + "x2idn.24xlarge", + "r6i.2xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6g.8xlarge", + "i3.16xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "r6i.16xlarge", + "g5.12xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "c6in.2xlarge" + ] + }, + "me-south-1": { + "enum": [ + "c6gn.8xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "c6g.16xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c5ad.8xlarge", + "r5d.8xlarge", + "c6g.12xlarge", + "m6g.2xlarge", + "r6i.24xlarge", + "c5a.16xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "d2.2xlarge", + "c5.9xlarge", + "d2.4xlarge", + "c5a.12xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "g4dn.16xlarge", + "c6gn.xlarge", + "i3en.12xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5d.8xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "m5.16xlarge", + "g4dn.4xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "c5.24xlarge", + "m6i.4xlarge", + "c5a.4xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "i4i.2xlarge", + "c5ad.xlarge", + "i3.8xlarge", + "c6gn.12xlarge", + "c6in.4xlarge", + "c5ad.2xlarge", + "c5d.4xlarge", + "i4i.8xlarge", + "i4i.32xlarge", + "m5.12xlarge", + "i3en.2xlarge", + "r5.12xlarge", + "i3.xlarge", + "r5.2xlarge", + "m6i.8xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6in.xlarge", + "c5ad.4xlarge", + "c6i.32xlarge", + "r6g.16xlarge", + "c5ad.12xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "g4dn.xlarge", + "m5.2xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "c5n.xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "m6i.2xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "m6g.12xlarge", + "i4i.xlarge", + "c5a.xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "r5.4xlarge", + "m5d.12xlarge", + "c5n.2xlarge", + "m6i.24xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "c6gn.4xlarge", + "i3en.24xlarge", + "i4i.24xlarge", + "m5d.2xlarge", + "r6i.4xlarge", + "c5n.18xlarge", + "r6i.2xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c5ad.24xlarge", + "g4dn.8xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "c6i.12xlarge", + "m6g.8xlarge", + "i3.16xlarge", + "c5ad.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "c6in.2xlarge", + "g4dn.12xlarge" + ] + }, + "sa-east-1": { + "enum": [ + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "r5d.12xlarge", + "c1.xlarge", + "m3.medium", + "x1e.2xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "c5ad.8xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "r6i.24xlarge", + "m1.medium", + "m4.2xlarge", + "r6gd.16xlarge", + "c5a.16xlarge", + "r5.24xlarge", + "x1.32xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "x1e.32xlarge", + "c6a.8xlarge", + "r5b.24xlarge", + "r3.2xlarge", + "r5.8xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6gd.2xlarge", + "g5.24xlarge", + "r5n.12xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "r4.xlarge", + "g5.48xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "g5.4xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "r3.8xlarge", + "c6gd.4xlarge", + "r4.4xlarge", + "g4dn.16xlarge", + "c6gn.xlarge", + "m4.4xlarge", + "i3en.12xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "m2.4xlarge", + "m6i.xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "m4.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "c3.large", + "r5b.2xlarge", + "m5a.12xlarge", + "m5d.8xlarge", + "cc1.4xlarge", + "c6gd.12xlarge", + "c6a.16xlarge", + "m5zn.3xlarge", + "r6g.xlarge", + "c4.8xlarge", + "r5ad.8xlarge", + "g5.xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r6g.2xlarge", + "c6in.24xlarge", + "r5d.24xlarge", + "m3.2xlarge", + "r5b.16xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5.16xlarge", + "r4.8xlarge", + "m5ad.24xlarge", + "c6a.24xlarge", + "c6a.2xlarge", + "m6a.32xlarge", + "r5a.16xlarge", + "m5a.2xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "r5a.4xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "g5.2xlarge", + "c6i.2xlarge", + "r5ad.4xlarge", + "c5.4xlarge", + "c3.xlarge", + "hi1.4xlarge", + "c5.24xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "m6i.4xlarge", + "c5d.2xlarge", + "r3.xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "g5.16xlarge", + "m5d.16xlarge", + "r3.4xlarge", + "r6i.12xlarge", + "m5a.8xlarge", + "cg1.4xlarge", + "i4i.2xlarge", + "r5b.4xlarge", + "x2iedn.32xlarge", + "i3.8xlarge", + "c5ad.xlarge", + "c6gn.12xlarge", + "c6in.4xlarge", + "m6gd.12xlarge", + "c6gd.2xlarge", + "c5ad.2xlarge", + "c5d.4xlarge", + "r5ad.2xlarge", + "r6gd.8xlarge", + "i4i.8xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "hs1.8xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "i4i.32xlarge", + "i2.4xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "c4.large", + "c6a.4xlarge", + "i3en.2xlarge", + "r5.12xlarge", + "x2idn.16xlarge", + "r5.2xlarge", + "i3.xlarge", + "r6gd.xlarge", + "r5b.8xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m3.large", + "m5.xlarge", + "m5zn.6xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c1.medium", + "c6in.xlarge", + "c5ad.4xlarge", + "c6a.32xlarge", + "m5zn.2xlarge", + "r5ad.16xlarge", + "c6i.32xlarge", + "m5ad.4xlarge", + "c3.2xlarge", + "m6a.8xlarge", + "r5n.4xlarge", + "r6gd.4xlarge", + "r6g.16xlarge", + "r5a.2xlarge", + "c5ad.12xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "c6a.xlarge", + "i4i.12xlarge", + "c4.2xlarge", + "r5ad.24xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "m6gd.4xlarge", + "g4dn.xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "m5.2xlarge", + "c6in.8xlarge", + "c5n.xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "m6i.32xlarge", + "m6g.12xlarge", + "i4i.xlarge", + "c5a.xlarge", + "r5n.2xlarge", + "m6a.xlarge", + "m5ad.12xlarge", + "c5a.2xlarge", + "c5d.12xlarge", + "cr1.8xlarge", + "c5.18xlarge", + "r5b.xlarge", + "r5a.12xlarge", + "r5a.8xlarge", + "m5d.12xlarge", + "c6g.4xlarge", + "r5.4xlarge", + "c5n.2xlarge", + "m6i.24xlarge", + "m6gd.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "r5b.12xlarge", + "c6i.xlarge", + "i3en.24xlarge", + "c6gn.4xlarge", + "r5n.16xlarge", + "m3.xlarge", + "i4i.24xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "r6i.4xlarge", + "m6a.4xlarge", + "c6gd.xlarge", + "c5n.18xlarge", + "m5zn.xlarge", + "c5d.24xlarge", + "m5ad.2xlarge", + "m6a.2xlarge", + "m2.xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "m2.2xlarge", + "x1e.16xlarge", + "x1e.4xlarge", + "i2.2xlarge", + "x2iedn.xlarge", + "r4.16xlarge", + "r6i.2xlarge", + "c5a.24xlarge", + "c6a.48xlarge", + "c6g.xlarge", + "m6gd.16xlarge", + "t1.micro", + "c6gd.8xlarge", + "c5ad.24xlarge", + "m1.xlarge", + "m4.large", + "c4.4xlarge", + "g4dn.8xlarge", + "r6i.xlarge", + "r5ad.12xlarge", + "m5d.24xlarge", + "r5n.xlarge", + "m1.small", + "m5ad.8xlarge", + "c6i.12xlarge", + "m6g.8xlarge", + "m6a.48xlarge", + "i3.16xlarge", + "i2.xlarge", + "m6a.16xlarge", + "c5ad.16xlarge", + "m5d.xlarge", + "c6i.8xlarge", + "i3en.xlarge", + "m1.large", + "r5.xlarge", + "r6i.16xlarge", + "m5ad.16xlarge", + "r5n.24xlarge", + "g5.12xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "c6in.32xlarge", + "i2.8xlarge", + "m6a.24xlarge", + "c6in.2xlarge", + "g4dn.12xlarge" + ] + }, + "us-east-1": { + "enum": [ + "x1e.2xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c5a.16xlarge", + "c7gn.xlarge", + "x1.32xlarge", + "r5.24xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "r3.2xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "r6a.12xlarge", + "c5d.9xlarge", + "r7i.16xlarge", + "c7a.4xlarge", + "r7i.4xlarge", + "m5dn.4xlarge", + "c4.xlarge", + "d3en.12xlarge", + "d2.4xlarge", + "r3.8xlarge", + "c6gn.xlarge", + "r7gd.16xlarge", + "r7a.32xlarge", + "m6idn.4xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "c3.large", + "r5b.2xlarge", + "c7gd.12xlarge", + "c7i.16xlarge", + "r5ad.8xlarge", + "m6id.xlarge", + "is4gen.4xlarge", + "m7a.32xlarge", + "m6a.32xlarge", + "r4.8xlarge", + "m7i-flex.8xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6a.4xlarge", + "r6g.4xlarge", + "r6idn.32xlarge", + "c7a.xlarge", + "h1.16xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c3.xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "c5ad.xlarge", + "r5b.4xlarge", + "c6in.4xlarge", + "c7a.48xlarge", + "c5ad.2xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "hs1.8xlarge", + "i4i.32xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "i4g.8xlarge", + "m7i.16xlarge", + "r6id.4xlarge", + "m5zn.6xlarge", + "c5.2xlarge", + "c1.medium", + "m5zn.2xlarge", + "m7a.2xlarge", + "c7g.16xlarge", + "g3s.xlarge", + "r6gd.4xlarge", + "c5ad.12xlarge", + "c6a.xlarge", + "r7iz.12xlarge", + "r6in.12xlarge", + "r5ad.24xlarge", + "r5d.16xlarge", + "r6idn.8xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "x2gd.xlarge", + "m7a.12xlarge", + "c5a.2xlarge", + "c7gn.2xlarge", + "cr1.8xlarge", + "p2.8xlarge", + "c6g.4xlarge", + "r5a.12xlarge", + "m7g.2xlarge", "r5b.xlarge", - "x1e.2xlarge", + "c5n.2xlarge", + "m5dn.24xlarge", + "r6g.8xlarge", + "im4gn.xlarge", + "i4i.24xlarge", + "r6i.4xlarge", + "r5dn.12xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "r6in.4xlarge", + "i2.2xlarge", + "x2iedn.xlarge", + "m7g.16xlarge", + "r6idn.xlarge", + "r4.16xlarge", + "r5dn.2xlarge", + "m6gd.16xlarge", + "c5ad.24xlarge", + "m4.large", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", + "m1.large", + "d2.8xlarge", + "r5.xlarge", + "d3.2xlarge", + "r7a.2xlarge", + "c7i.xlarge", + "c7i.2xlarge", + "r7a.24xlarge", + "r5n.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "m6a.24xlarge", + "im4gn.8xlarge", + "i4g.16xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "c1.xlarge", + "m3.medium", + "i4g.2xlarge", + "r7a.16xlarge", + "c5.xlarge", + "d3en.8xlarge", + "is4gen.xlarge", + "m6i.12xlarge", + "c7gn.12xlarge", + "c5ad.8xlarge", + "r7g.12xlarge", + "z1d.12xlarge", + "m1.medium", + "r7g.16xlarge", + "r6in.32xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", + "r7i.24xlarge", + "r5.8xlarge", + "c6id.24xlarge", + "h1.2xlarge", + "c6id.12xlarge", + "c6id.2xlarge", + "g5.48xlarge", + "im4gn.16xlarge", + "d2.2xlarge", + "c5.9xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "m6i.16xlarge", + "p3.8xlarge", + "c6i.16xlarge", + "m6in.4xlarge", + "m5n.2xlarge", + "m7gd.2xlarge", + "c7i.12xlarge", + "m5d.8xlarge", + "c6a.16xlarge", + "r6g.2xlarge", + "c7gd.16xlarge", + "m6in.24xlarge", + "m3.2xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "c6id.16xlarge", + "g5.2xlarge", + "r7iz.32xlarge", + "r5ad.4xlarge", + "i4g.xlarge", + "c5.4xlarge", + "c5.24xlarge", + "d3.4xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", + "c5d.2xlarge", + "d3en.xlarge", + "cg1.4xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "c7a.12xlarge", + "m5n.24xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", + "r6in.8xlarge", + "m6i.8xlarge", + "m5.xlarge", + "r7iz.8xlarge", + "m5.4xlarge", + "z1d.2xlarge", + "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "c3.2xlarge", + "m6a.8xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m6idn.2xlarge", + "c7g.4xlarge", + "r6a.16xlarge", + "i3en.3xlarge", + "m5.2xlarge", + "m7i.2xlarge", + "r7a.4xlarge", + "r5n.2xlarge", + "m6a.xlarge", + "m5dn.16xlarge", + "c5.18xlarge", + "m7g.xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "c5d.18xlarge", + "m6idn.8xlarge", + "i3en.24xlarge", + "c6i.xlarge", + "r7g.8xlarge", + "c7g.8xlarge", + "c6gn.4xlarge", + "r7g.xlarge", + "m6a.4xlarge", + "m7i.24xlarge", + "c5n.18xlarge", + "p2.16xlarge", + "m5ad.2xlarge", + "m2.xlarge", + "m5dn.12xlarge", + "c7gd.xlarge", + "c7i.24xlarge", + "r6i.2xlarge", + "c6a.48xlarge", + "z1d.6xlarge", + "r7i.8xlarge", + "c6i.12xlarge", + "m6id.32xlarge", + "i3.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "r7iz.4xlarge", + "r6in.16xlarge", + "m5dn.2xlarge", + "c7a.32xlarge", + "c6in.2xlarge", + "c7i.8xlarge", + "i3.4xlarge", + "r6in.xlarge", + "m6in.2xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "c6id.8xlarge", + "m6in.32xlarge", + "c6g.16xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "m7i.4xlarge", + "h1.4xlarge", + "m5.24xlarge", + "r5b.24xlarge", + "r6in.2xlarge", + "c7i.48xlarge", + "r6gd.2xlarge", + "r5n.12xlarge", + "m7i.8xlarge", + "r4.xlarge", + "r6idn.4xlarge", + "g5.4xlarge", + "r6a.xlarge", + "c5n.9xlarge", + "r6g.12xlarge", + "c6gd.4xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "r5dn.24xlarge", + "c3.4xlarge", + "m2.4xlarge", + "r6id.16xlarge", + "c6id.32xlarge", + "m4.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "m5zn.3xlarge", + "cc1.4xlarge", + "c6id.xlarge", + "g5.xlarge", + "m5n.xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "r5b.16xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "m7a.4xlarge", + "r7a.12xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r7i.12xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "m7a.8xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "c7gn.4xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "m3.large", + "i4g.4xlarge", + "c5ad.4xlarge", + "c7gd.8xlarge", + "h1.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "r7iz.xlarge", + "m7i.48xlarge", + "r5a.2xlarge", + "r6a.32xlarge", + "r5d.xlarge", + "r6idn.12xlarge", + "c6g.8xlarge", + "r7i.48xlarge", + "r6id.8xlarge", + "g3.4xlarge", + "m6id.2xlarge", + "r7gd.4xlarge", + "r7gd.2xlarge", + "i4i.12xlarge", + "r6idn.2xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r6in.24xlarge", + "r5dn.xlarge", + "r5.16xlarge", + "c7i.4xlarge", + "m6i.2xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5.4xlarge", + "m5dn.8xlarge", + "c7g.xlarge", + "c7a.8xlarge", + "r5b.12xlarge", + "m5n.16xlarge", + "m7i-flex.2xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m7a.xlarge", + "m5d.2xlarge", + "r7a.8xlarge", + "c6gd.xlarge", + "m5zn.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "c7gn.8xlarge", + "m2.2xlarge", + "p5.48xlarge", + "is4gen.8xlarge", + "x1e.16xlarge", + "c5a.24xlarge", "m5n.4xlarge", - "m5n.24xlarge", - "m5.xlarge", - "r5b.4xlarge", + "r6id.xlarge", + "m6id.4xlarge", + "x2gd.16xlarge", + "r7a.48xlarge", "r5ad.12xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", - "r6a.16xlarge", - "m5dn.8xlarge", - "r6gd.12xlarge", - "r6g.xlarge", + "r5n.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", + "c7a.2xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", "r6id.24xlarge", - "im4gn.2xlarge", - "m5n.12xlarge", - "m5d.16xlarge", - "c5ad.4xlarge", - "c7g.12xlarge", + "im4gn.4xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "m7i-flex.4xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r6a.48xlarge", + "m7i-flex.xlarge", + "c7gn.16xlarge", "z1d.3xlarge", - "x1e.4xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "g5.24xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", "i3en.12xlarge", - "r5ad.24xlarge", - "r5dn.12xlarge", + "r6id.32xlarge", + "m6id.24xlarge", + "m6i.xlarge", + "d3en.4xlarge", + "m5n.8xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", "m5dn.xlarge", - "c6gd.4xlarge", - "c6gn.12xlarge", - "c6in.xlarge", - "m6a.8xlarge", - "m5ad.24xlarge", - "i3.xlarge", - "r5ad.4xlarge", - "i3.2xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "r6g.2xlarge", - "r5n.2xlarge", - "i4i.2xlarge", - "r6gd.8xlarge", - "m6g.16xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", "m5.16xlarge", - "m5ad.12xlarge", - "m6a.24xlarge", - "m5n.xlarge", + "m6id.12xlarge", "m6g.xlarge", - "m5d.2xlarge", - "is4gen.8xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", - "m5dn.4xlarge", - "r4.8xlarge", - "c7g.8xlarge", - "c6i.12xlarge", - "r6i.8xlarge", - "r5b.12xlarge", - "c4.8xlarge", - "i4i.32xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r3.2xlarge", - "x1.16xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", + "hi1.4xlarge", + "m6i.4xlarge", + "m6idn.xlarge", + "g5.16xlarge", + "c7gd.2xlarge", + "r6i.12xlarge", + "r7i.2xlarge", + "r7iz.2xlarge", + "p3.2xlarge", + "r6gd.8xlarge", + "x2gd.2xlarge", + "c7a.24xlarge", + "i2.4xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "r5b.8xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "m5n.12xlarge", + "m7i.xlarge", + "c6a.32xlarge", + "m7g.12xlarge", + "m7i.12xlarge", + "d3.8xlarge", + "c6i.32xlarge", + "r6idn.24xlarge", + "r5n.4xlarge", + "c6id.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", + "x2gd.8xlarge", + "i3en.6xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "r7iz.16xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "x2gd.12xlarge", + "m6g.12xlarge", "g3.16xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "d3en.2xlarge", + "m7a.16xlarge", + "m5d.12xlarge", + "r5a.8xlarge", + "m6id.8xlarge", + "r7a.xlarge", "r5n.16xlarge", - "r5a.16xlarge", - "r5a.12xlarge", + "d3.xlarge", + "c7a.16xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "m6id.16xlarge", + "r6a.24xlarge", + "x1e.4xlarge", + "p2.xlarge", + "r6idn.16xlarge", + "c6g.xlarge", + "m7a.24xlarge", + "t1.micro", + "c6gd.8xlarge", + "d3en.6xlarge", + "c4.4xlarge", + "m1.xlarge", + "x2gd.4xlarge", + "g4dn.8xlarge", + "r7i.xlarge", + "m1.small", + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "c5ad.16xlarge", + "m7a.48xlarge", + "m6a.16xlarge", + "c6gn.16xlarge", "c6in.32xlarge", + "r7g.4xlarge" + ] + }, + "us-east-2": { + "enum": [ + "x1e.2xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", "m6g.2xlarge", - "m6i.24xlarge", + "m5ad.xlarge", + "c5a.16xlarge", + "c7gn.xlarge", + "x1.32xlarge", + "r5.24xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "r3.2xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6a.12xlarge", + "r7i.16xlarge", + "c7a.4xlarge", + "r7i.4xlarge", + "m5dn.4xlarge", + "c4.xlarge", + "d2.4xlarge", + "r3.8xlarge", + "c6gn.xlarge", + "r7gd.16xlarge", + "m6idn.4xlarge", + "r7a.32xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "r5b.2xlarge", + "c7gd.12xlarge", + "c7i.16xlarge", + "r5ad.8xlarge", + "m6id.xlarge", + "is4gen.4xlarge", + "m7a.32xlarge", "m6a.32xlarge", + "r4.8xlarge", + "m7i-flex.8xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6a.4xlarge", + "r6g.4xlarge", + "r6idn.32xlarge", + "c7a.xlarge", + "h1.16xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", + "m5d.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "c5ad.xlarge", + "r5b.4xlarge", + "c6in.4xlarge", + "c7a.48xlarge", + "c5ad.2xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "i4i.32xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "m7i.16xlarge", + "i4g.8xlarge", + "r6id.4xlarge", + "m5zn.6xlarge", + "c5.2xlarge", + "m5zn.2xlarge", + "m7a.2xlarge", + "c7g.16xlarge", + "g3s.xlarge", + "r6gd.4xlarge", + "c5ad.12xlarge", + "c6a.xlarge", + "r6in.12xlarge", + "r5ad.24xlarge", + "r5d.16xlarge", + "r6idn.8xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "x2gd.xlarge", + "m7a.12xlarge", + "c5a.2xlarge", + "c7gn.2xlarge", + "c6g.4xlarge", + "p2.8xlarge", + "r5b.xlarge", + "r5a.12xlarge", + "m7g.2xlarge", + "c5n.2xlarge", + "m5dn.24xlarge", + "r6g.8xlarge", + "im4gn.xlarge", + "i4i.24xlarge", + "r6i.4xlarge", + "r5dn.12xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "r6in.4xlarge", + "r6idn.xlarge", + "r4.16xlarge", + "i2.2xlarge", + "x2iedn.xlarge", + "m7g.16xlarge", + "r5dn.2xlarge", + "m6gd.16xlarge", + "c5ad.24xlarge", + "m4.large", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", "d3.2xlarge", - "m6a.2xlarge", - "c5n.18xlarge", - "c6in.16xlarge", + "r7a.2xlarge", + "c7i.xlarge", + "r5n.24xlarge", + "r7a.24xlarge", + "c7i.2xlarge", + "m5.8xlarge", + "i2.8xlarge", + "im4gn.8xlarge", + "m6a.24xlarge", + "i4g.16xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "i4g.2xlarge", + "r7a.16xlarge", + "c5.xlarge", "m6i.12xlarge", - "m5a.8xlarge", - "m5dn.24xlarge", - "x1e.32xlarge", - "m5ad.xlarge", + "is4gen.xlarge", + "c7gn.12xlarge", + "c5ad.8xlarge", + "r7g.12xlarge", "z1d.12xlarge", - "m6g.12xlarge", - "i3.8xlarge", + "r7g.16xlarge", + "r6in.32xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", + "r7i.24xlarge", "r5.8xlarge", - "c5a.4xlarge", - "m6gd.4xlarge", - "r6id.2xlarge", - "r5.4xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c4.large", - "m5.2xlarge", - "c5n.2xlarge", - "c6gn.16xlarge", - "i2.8xlarge", - "r5d.16xlarge", - "m5dn.12xlarge", - "r6g.4xlarge", - "i4i.8xlarge", - "m6a.16xlarge", - "r5b.2xlarge", + "c6id.24xlarge", + "c6id.12xlarge", + "h1.2xlarge", + "c6id.2xlarge", + "g5.48xlarge", + "im4gn.16xlarge", + "d2.2xlarge", + "c5.9xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "p3.8xlarge", + "c6i.16xlarge", + "m6i.16xlarge", "m5n.2xlarge", + "m6in.4xlarge", + "m7gd.2xlarge", + "c7i.12xlarge", + "m5d.8xlarge", + "c6a.16xlarge", + "c7gd.16xlarge", + "r6g.2xlarge", + "m6in.24xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "c6id.16xlarge", + "g5.2xlarge", + "r5ad.4xlarge", + "i4g.xlarge", + "c5.4xlarge", + "c5.24xlarge", + "d3.4xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", + "c5d.2xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "c7a.12xlarge", + "m5n.24xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", + "r6in.8xlarge", "m6i.8xlarge", - "i2.xlarge", - "p2.16xlarge", - "r6a.8xlarge", - "z1d.xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "c6in.24xlarge", - "r6id.8xlarge", - "x2iedn.24xlarge", - "c7g.4xlarge", - "r3.4xlarge", - "c5ad.12xlarge", + "m5.xlarge", + "m5.4xlarge", "z1d.2xlarge", - "x2iedn.4xlarge", + "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "m6a.8xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m6idn.2xlarge", + "c7g.4xlarge", + "r6a.16xlarge", + "i3en.3xlarge", + "m5.2xlarge", + "m7i.2xlarge", + "r7a.4xlarge", + "r5n.2xlarge", + "m6a.xlarge", + "m5dn.16xlarge", + "c5.18xlarge", + "m7g.xlarge", "m6gd.xlarge", + "m6i.24xlarge", + "c5d.18xlarge", + "m6idn.8xlarge", + "c6i.xlarge", + "c7g.8xlarge", + "i3en.24xlarge", + "r7g.8xlarge", + "c6gn.4xlarge", + "r7g.xlarge", + "m6a.4xlarge", + "m7i.24xlarge", + "c5n.18xlarge", + "p2.16xlarge", "m5ad.2xlarge", - "r6gd.4xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "r5d.4xlarge", - "r6id.4xlarge", - "r5a.4xlarge", - "m6a.xlarge", - "m5a.2xlarge", - "r5dn.xlarge", - "m5zn.3xlarge", - "c5d.12xlarge", - "m5a.12xlarge", - "c7g.16xlarge", - "i4i.4xlarge", - "r5b.24xlarge", - "m5zn.2xlarge", - "r6a.24xlarge", + "c7gd.xlarge", + "m5dn.12xlarge", + "c7i.24xlarge", + "r6i.2xlarge", + "c6a.48xlarge", + "z1d.6xlarge", + "r7i.8xlarge", + "c6i.12xlarge", + "m6id.32xlarge", "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "c5.2xlarge", "c6i.8xlarge", - "m5.12xlarge", - "im4gn.16xlarge", - "c5d.2xlarge", - "c6in.12xlarge", - "g3.8xlarge", - "m5dn.16xlarge", - "m5n.8xlarge", - "m5.4xlarge", - "c5ad.16xlarge", - "c6in.4xlarge", - "i4i.16xlarge", - "r5dn.4xlarge", - "m6a.48xlarge", - "p2.8xlarge", - "m6g.4xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "r6in.16xlarge", + "m5dn.2xlarge", + "c7a.32xlarge", + "c6in.2xlarge", + "c7i.8xlarge", + "i3.4xlarge", + "r6in.xlarge", + "m6in.2xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "c6g.16xlarge", + "c6id.8xlarge", + "m6in.32xlarge", + "r6i.24xlarge", + "h1.4xlarge", + "r6gd.16xlarge", + "m7i.4xlarge", + "m5.24xlarge", + "r5b.24xlarge", + "r6in.2xlarge", + "r6gd.2xlarge", + "c7i.48xlarge", + "r5n.12xlarge", + "m7i.8xlarge", + "r4.xlarge", + "r6idn.4xlarge", + "g5.4xlarge", + "r6a.xlarge", + "c5n.9xlarge", + "r6g.12xlarge", + "c6gd.4xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "r5dn.24xlarge", + "r6id.16xlarge", + "c6id.32xlarge", + "m4.16xlarge", + "x1.16xlarge", "m5d.4xlarge", - "x1e.xlarge", + "r6g.xlarge", + "m5zn.3xlarge", + "c6id.xlarge", + "g5.xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "m5n.xlarge", + "r5b.16xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "m7a.4xlarge", + "r7a.12xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r7i.12xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "m7a.8xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "c7gn.4xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "i4g.4xlarge", + "c5ad.4xlarge", + "c7gd.8xlarge", + "h1.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "m7i.48xlarge", + "r5a.2xlarge", + "r6a.32xlarge", + "r5d.xlarge", + "r6idn.12xlarge", + "c6g.8xlarge", + "r6id.8xlarge", + "g3.4xlarge", + "r7i.48xlarge", + "m6id.2xlarge", + "r7gd.4xlarge", + "i4i.12xlarge", + "r7gd.2xlarge", + "r6idn.2xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r6in.24xlarge", + "r5dn.xlarge", + "r5.16xlarge", + "c7i.4xlarge", "m6i.2xlarge", - "g3s.xlarge", - "r6g.12xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5.4xlarge", + "m5dn.8xlarge", "c7g.xlarge", + "c7a.8xlarge", + "r5b.12xlarge", + "m5n.16xlarge", + "m7i-flex.2xlarge", + "m5a.4xlarge", + "m7a.xlarge", + "m5d.2xlarge", + "r7a.8xlarge", + "c6gd.xlarge", + "m5zn.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "c7gn.8xlarge", + "p5.48xlarge", + "x1e.16xlarge", + "is4gen.8xlarge", "c5a.24xlarge", + "m5n.4xlarge", "r6id.xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", - "r6a.xlarge", + "m6id.4xlarge", + "x2gd.16xlarge", + "r7a.48xlarge", + "r5ad.12xlarge", "r5n.xlarge", - "m6i.xlarge", - "r5d.8xlarge", - "c7g.2xlarge", - "r6i.32xlarge", - "c5ad.xlarge", - "g4dn.16xlarge", - "c4.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", + "c7a.2xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", + "r6id.24xlarge", "im4gn.4xlarge", - "r4.2xlarge", - "is4gen.4xlarge", + "i4i.4xlarge", "c6g.2xlarge", - "c5.18xlarge", - "c5.12xlarge", - "m5zn.6xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "r6a.4xlarge", - "m4.10xlarge", - "c5n.9xlarge", - "c6in.8xlarge", + "r6i.8xlarge", + "m7i-flex.4xlarge", + "m7i-flex.xlarge", + "g4dn.2xlarge", + "r6a.48xlarge", + "c6g.12xlarge", + "d2.xlarge", + "c7gn.16xlarge", + "z1d.3xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "g5.24xlarge", + "c5.12xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "i3en.12xlarge", "r6id.32xlarge", - "im4gn.8xlarge", - "c6gd.2xlarge", - "r6a.12xlarge", + "m6id.24xlarge", + "m6i.xlarge", + "m5n.8xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "m5dn.xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "m6id.12xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", "m6i.4xlarge", + "m6idn.xlarge", + "g5.16xlarge", + "c7gd.2xlarge", + "r6i.12xlarge", + "r7i.2xlarge", "p3.2xlarge", - "p3.16xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "c5a.xlarge", - "r6a.32xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.16xlarge", - "h1.4xlarge", + "r6gd.8xlarge", + "x2gd.2xlarge", + "c7a.24xlarge", "i2.4xlarge", - "r6gd.xlarge", - "c5d.24xlarge", - "z1d.6xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "r6id.12xlarge", - "c6gd.xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "im4gn.xlarge", - "c6in.2xlarge", - "c4.4xlarge", "m6gd.8xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r4.xlarge", - "c5d.xlarge", + "m5.12xlarge", + "r5b.8xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "m5n.12xlarge", + "m7i.xlarge", + "c6a.32xlarge", + "m7g.12xlarge", + "m7i.12xlarge", "d3.8xlarge", - "c6i.2xlarge", - "m6gd.12xlarge", + "c6i.32xlarge", + "r6idn.24xlarge", + "r5n.4xlarge", + "c6id.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", + "x2gd.8xlarge", "i3en.6xlarge", - "c6i.4xlarge", - "m6i.32xlarge", - "m6gd.16xlarge", - "m4.xlarge", - "r6i.16xlarge", - "d2.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "x2gd.12xlarge", + "m6g.12xlarge", + "g3.16xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "m7a.16xlarge", + "m5d.12xlarge", "r5a.8xlarge", - "r5.2xlarge", - "i4i.xlarge", - "d2.xlarge", - "h1.16xlarge", - "r5b.16xlarge", - "x2iedn.8xlarge", - "is4gen.2xlarge", - "m5ad.8xlarge", - "c5.9xlarge", - "c5ad.8xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "r5n.24xlarge", - "c6i.32xlarge", - "r6id.16xlarge", - "x1e.16xlarge", - "m5ad.4xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", + "m6id.8xlarge", + "r7a.xlarge", + "r5n.16xlarge", + "d3.xlarge", + "c7a.16xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "m6id.16xlarge", + "x1e.4xlarge", + "r6a.24xlarge", + "p2.xlarge", + "r6idn.16xlarge", + "c6g.xlarge", + "m7a.24xlarge", + "c6gd.8xlarge", + "c4.4xlarge", + "x2gd.4xlarge", "g4dn.8xlarge", - "m5dn.2xlarge", - "r5dn.2xlarge" + "r7i.xlarge", + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "c5ad.16xlarge", + "m7a.48xlarge", + "m6a.16xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" ] }, "us-gov-east-1": { "enum": [ - "c5.12xlarge", - "g4dn.12xlarge", - "m5n.12xlarge", - "m5d.16xlarge", - "m5.24xlarge", + "i4i.16xlarge", + "r5d.12xlarge", + "x1e.2xlarge", + "i3.4xlarge", + "c5.xlarge", + "m6i.12xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "x2iedn.24xlarge", + "c6g.16xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", "r6i.24xlarge", - "c5n.9xlarge", - "i3en.12xlarge", + "c5a.16xlarge", + "x1.32xlarge", + "r5.24xlarge", + "m5.24xlarge", "r5a.xlarge", + "x1e.32xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r5n.12xlarge", + "c5.12xlarge", + "r6i.32xlarge", "m5a.24xlarge", - "m6i.4xlarge", + "c5.9xlarge", + "m5dn.4xlarge", + "d2.2xlarge", + "d2.4xlarge", + "c5a.12xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "g4dn.16xlarge", + "i3en.12xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "r5dn.24xlarge", + "m6i.xlarge", + "m5n.2xlarge", + "m5n.8xlarge", + "c6i.4xlarge", + "c6in.16xlarge", + "x1.16xlarge", + "m5d.4xlarge", + "m5a.12xlarge", + "r6g.xlarge", + "m5d.8xlarge", "m5dn.xlarge", - "r5dn.12xlarge", - "i3.xlarge", - "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "m5n.xlarge", + "c6in.24xlarge", "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "i3en.2xlarge", "r6g.2xlarge", - "r5n.2xlarge", - "m6i.16xlarge", - "m5d.24xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", - "c6g.16xlarge", - "m5d.xlarge", + "r5dn.16xlarge", "m5.16xlarge", - "m5n.xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "r5n.12xlarge", - "r5d.4xlarge", - "m5dn.4xlarge", - "r5dn.24xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "g4dn.2xlarge", - "c6i.12xlarge", + "r5n.8xlarge", + "r5a.16xlarge", "m5a.2xlarge", - "r5dn.xlarge", + "x2iedn.2xlarge", + "r5a.4xlarge", + "x1e.xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "m6i.4xlarge", "c5.24xlarge", - "r5.16xlarge", - "r6i.8xlarge", + "c5a.4xlarge", + "c5d.2xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "m5d.16xlarge", + "r6i.12xlarge", + "m5a.8xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6in.4xlarge", + "c5d.4xlarge", + "i4i.8xlarge", + "m5n.24xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "m5a.xlarge", + "i4i.32xlarge", + "m5.12xlarge", + "i3en.2xlarge", "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.16xlarge", + "m6i.8xlarge", + "x2idn.32xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6in.xlarge", + "m5n.12xlarge", + "c6i.32xlarge", + "r5n.4xlarge", + "r5dn.8xlarge", "r6g.16xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", + "r5a.2xlarge", "r5d.xlarge", - "i3.16xlarge", + "c6g.8xlarge", + "r5d.16xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "c6i.24xlarge", + "m5a.16xlarge", "g4dn.xlarge", - "d2.8xlarge", - "c5.4xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "x1.16xlarge", - "m5.12xlarge", - "r5n.16xlarge", - "r6g.8xlarge", - "c5d.xlarge", - "r5a.16xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r5a.12xlarge", "r5d.2xlarge", - "m5dn.16xlarge", - "i3en.6xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "m5n.16xlarge", - "m6i.24xlarge", - "m5n.8xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "m5.8xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "c5n.18xlarge", - "r5.xlarge", - "i3.4xlarge", - "r5dn.4xlarge", - "c5n.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "m6i.12xlarge", - "m5a.8xlarge", + "r5dn.xlarge", + "m5.2xlarge", + "c6in.8xlarge", + "r5.16xlarge", "c5n.xlarge", - "m5dn.24xlarge", - "m6g.4xlarge", - "r5dn.16xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "d2.xlarge", + "c5a.8xlarge", "m6i.2xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "i4i.xlarge", "m6g.12xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5n.2xlarge", + "c5a.2xlarge", + "m5dn.16xlarge", + "c5.18xlarge", + "c6g.4xlarge", + "r5a.12xlarge", "r5.4xlarge", - "i3en.3xlarge", - "r5a.2xlarge", - "c5a.24xlarge", - "r5n.4xlarge", - "c6i.32xlarge", - "r5n.24xlarge", - "m5.2xlarge", - "m5n.4xlarge", - "r6i.2xlarge", - "m5.xlarge", - "m5n.24xlarge", - "r5n.8xlarge", + "m5d.12xlarge", + "r5a.8xlarge", "c5n.2xlarge", - "m5d.8xlarge", - "r5n.xlarge", - "r5d.8xlarge", - "m6i.xlarge", + "m6i.24xlarge", + "m5dn.24xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "m5dn.8xlarge", + "c6i.xlarge", "i3en.24xlarge", - "c5d.9xlarge", - "r6i.12xlarge", - "r6i.32xlarge", - "c5a.12xlarge", + "r5n.16xlarge", + "m5n.16xlarge", + "m5a.4xlarge", + "m5d.2xlarge", "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "m5dn.8xlarge", + "r5dn.12xlarge", + "c5n.18xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", "m5dn.12xlarge", - "r6g.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", + "x1e.16xlarge", + "x1e.4xlarge", + "x2iedn.xlarge", + "r6i.2xlarge", + "c5a.24xlarge", + "m5n.4xlarge", + "r5dn.2xlarge", + "c6g.xlarge", "g4dn.8xlarge", - "m5n.2xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "r5n.xlarge", + "m6g.8xlarge", + "c6i.12xlarge", + "r5dn.4xlarge", + "i3.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "i3en.xlarge", + "r5.xlarge", + "d2.8xlarge", + "r6i.16xlarge", + "r5n.24xlarge", "m5dn.2xlarge", - "r5dn.2xlarge", - "m6i.8xlarge" + "m5.8xlarge", + "c6in.32xlarge", + "c6in.2xlarge", + "g4dn.12xlarge" ] }, "us-gov-west-1": { "enum": [ - "c5.12xlarge", - "i2.xlarge", - "c3.4xlarge", - "g4dn.12xlarge", - "p2.16xlarge", - "m5n.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "m5d.16xlarge", - "r5ad.16xlarge", - "r6i.24xlarge", - "c5n.9xlarge", - "m4.10xlarge", - "i3en.12xlarge", - "r5a.xlarge", - "t1.micro", - "m5a.24xlarge", - "r5ad.24xlarge", - "r5dn.12xlarge", - "m6i.4xlarge", - "m5dn.xlarge", - "p3.2xlarge", - "c1.xlarge", - "m5ad.24xlarge", - "p3.16xlarge", - "i3.xlarge", - "c6i.xlarge", - "x1.32xlarge", - "g4dn.4xlarge", - "r5ad.4xlarge", - "r5d.24xlarge", - "i3.2xlarge", - "c5d.4xlarge", - "m1.medium", - "r5dn.8xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "r3.4xlarge", - "m5a.16xlarge", - "i3en.2xlarge", - "g2.2xlarge", - "r6g.2xlarge", - "m1.xlarge", - "i2.2xlarge", - "r5n.2xlarge", - "m6i.16xlarge", - "m5d.24xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", - "m5d.12xlarge", - "m6g.16xlarge", - "r6i.xlarge", - "m5d.xlarge", - "m5.16xlarge", - "c6g.16xlarge", - "m5ad.12xlarge", - "r4.4xlarge", - "c3.large", - "m5ad.2xlarge", - "d3.xlarge", - "m5n.xlarge", - "c3.2xlarge", - "m6g.xlarge", - "i2.4xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "c5a.2xlarge", - "cc1.4xlarge", - "m5a.4xlarge", + "x1e.2xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c5a.16xlarge", "r5.24xlarge", - "c5d.24xlarge", - "r5n.12xlarge", - "r5d.4xlarge", + "x1.32xlarge", + "r5a.xlarge", + "r3.2xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", "m5dn.4xlarge", - "r5dn.24xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "m1.small", + "c4.xlarge", + "d2.4xlarge", + "r3.8xlarge", + "m6idn.4xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "c3.large", + "r5ad.8xlarge", + "m6id.xlarge", "r4.8xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "c6i.12xlarge", "m5a.2xlarge", - "c5.24xlarge", - "r5dn.xlarge", - "r5.16xlarge", - "r6i.8xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "m4.large", + "r5a.4xlarge", + "r6g.4xlarge", + "r6idn.32xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c3.xlarge", + "c5a.4xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "m5d.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "c6in.4xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "hs1.8xlarge", + "i4i.32xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "r6id.4xlarge", + "c5.2xlarge", + "c1.medium", + "r6in.12xlarge", + "r5d.16xlarge", + "r5ad.24xlarge", + "r6idn.8xlarge", "c6i.24xlarge", - "m5a.12xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "i3.16xlarge", - "p2.xlarge", + "m5a.16xlarge", "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "c4.2xlarge", - "r3.2xlarge", - "c5.2xlarge", - "x1.16xlarge", - "c6i.8xlarge", - "d2.8xlarge", - "g3.16xlarge", - "c4.4xlarge", - "m2.2xlarge", - "m5.12xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r5n.16xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "c5a.2xlarge", + "cr1.8xlarge", + "p2.8xlarge", + "r5a.12xlarge", + "c6g.4xlarge", + "c5n.2xlarge", + "m5dn.24xlarge", "r6g.8xlarge", - "c5d.xlarge", - "r4.xlarge", + "r5dn.12xlarge", + "r6i.4xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "r6in.4xlarge", + "i2.2xlarge", + "r4.16xlarge", + "r6idn.xlarge", + "x2iedn.xlarge", + "r5dn.2xlarge", + "m4.large", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", + "m1.large", + "r5.xlarge", + "d2.8xlarge", + "d3.2xlarge", + "r5n.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "c1.xlarge", + "m3.medium", + "c5.xlarge", + "m6i.12xlarge", + "m1.medium", + "r6in.32xlarge", + "r5.8xlarge", + "c6id.24xlarge", + "c6id.12xlarge", + "c6id.2xlarge", + "d2.2xlarge", + "c5.9xlarge", + "c5a.12xlarge", + "p3.8xlarge", + "c6i.16xlarge", + "m6i.16xlarge", + "m6in.4xlarge", + "m5n.2xlarge", + "m5d.8xlarge", + "r6g.2xlarge", + "m6in.24xlarge", + "m3.2xlarge", "r5a.16xlarge", - "d3.8xlarge", - "c6g.12xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "c6id.16xlarge", + "r5ad.4xlarge", + "c5.4xlarge", + "c5.24xlarge", + "d3.4xlarge", "c5d.2xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "g3.8xlarge", "cg1.4xlarge", + "m6in.8xlarge", + "c5d.4xlarge", + "m5n.24xlarge", + "m5a.xlarge", + "r5.12xlarge", + "r6in.8xlarge", + "m6i.8xlarge", + "m5.xlarge", + "m5.4xlarge", + "c6in.xlarge", + "r5ad.16xlarge", + "c3.2xlarge", + "m6idn.2xlarge", + "i3en.3xlarge", + "m5.2xlarge", + "r5n.2xlarge", + "c5.18xlarge", "m5dn.16xlarge", - "i3en.6xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "m5n.16xlarge", - "hi1.4xlarge", "m6i.24xlarge", - "m5n.8xlarge", - "m2.4xlarge", - "m5.4xlarge", - "c5a.16xlarge", - "d3.2xlarge", - "m6i.32xlarge", - "hs1.8xlarge", - "m4.xlarge", - "m5.8xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", + "m6idn.8xlarge", + "c5d.18xlarge", + "i3en.24xlarge", + "c6i.xlarge", "c5n.18xlarge", + "p2.16xlarge", + "m5ad.2xlarge", + "m2.xlarge", + "m5dn.12xlarge", + "r6i.2xlarge", + "c6i.12xlarge", + "m6id.32xlarge", + "i3.16xlarge", + "c6i.8xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "r6in.16xlarge", + "m5dn.2xlarge", + "c6in.2xlarge", "i3.4xlarge", - "r5.xlarge", - "r5dn.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "m6i.12xlarge", - "cr1.8xlarge", - "m5a.8xlarge", - "c5n.xlarge", - "p2.8xlarge", - "m5dn.24xlarge", - "m6g.4xlarge", - "r5dn.16xlarge", - "m5ad.xlarge", - "c6i.16xlarge", + "r6in.xlarge", + "m6in.2xlarge", + "c6id.8xlarge", + "m6in.32xlarge", + "c6g.16xlarge", + "r6i.24xlarge", + "m5.24xlarge", + "r6in.2xlarge", + "r5n.12xlarge", + "r4.xlarge", + "r6idn.4xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "r5dn.24xlarge", + "c3.4xlarge", + "m2.4xlarge", + "r6id.16xlarge", + "c6id.32xlarge", + "m4.16xlarge", + "x1.16xlarge", "m5d.4xlarge", - "cc2.8xlarge", + "r6g.xlarge", + "cc1.4xlarge", + "c6id.xlarge", + "m5n.xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r3.xlarge", + "r3.4xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "r5ad.2xlarge", + "i4i.8xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", "m3.large", - "d2.xlarge", - "c1.medium", - "m3.medium", + "m5ad.4xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "r6idn.12xlarge", + "c6g.8xlarge", + "r6id.8xlarge", + "g3.4xlarge", + "m6id.2xlarge", + "r6idn.2xlarge", + "c4.2xlarge", + "r6in.24xlarge", + "r5dn.xlarge", + "r5.16xlarge", "m6i.2xlarge", - "m6g.12xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "m5ad.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "c3.xlarge", + "m6i.32xlarge", + "c5a.xlarge", "r5.4xlarge", - "i3en.3xlarge", - "r5a.2xlarge", + "m5dn.8xlarge", + "m5n.16xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "m2.2xlarge", + "x1e.16xlarge", "c5a.24xlarge", - "r5n.4xlarge", - "c4.large", - "c6i.32xlarge", - "r5n.24xlarge", - "m5.2xlarge", "m5n.4xlarge", - "m5n.24xlarge", - "c3.8xlarge", - "m5.xlarge", - "r5n.8xlarge", - "r6i.2xlarge", - "c5n.2xlarge", - "m5d.8xlarge", - "r5n.xlarge", + "r6id.xlarge", + "m6id.4xlarge", "r5ad.12xlarge", - "m5ad.4xlarge", - "g3.4xlarge", - "m2.xlarge", - "m6i.xlarge", - "i2.8xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "r5d.8xlarge", - "r6i.12xlarge", - "m3.2xlarge", + "r5n.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r6id.24xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "c6g.12xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "c5.12xlarge", "r6i.32xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "m5dn.8xlarge", - "m5dn.12xlarge", - "c4.xlarge", - "r6g.4xlarge", - "i3en.xlarge", "r4.2xlarge", - "c6g.4xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "i3en.12xlarge", + "r6id.32xlarge", + "m6id.24xlarge", + "m6i.xlarge", + "m5n.8xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c4.8xlarge", + "m5dn.xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "m6id.12xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "hi1.4xlarge", + "m6i.4xlarge", + "m6idn.xlarge", + "r6i.12xlarge", + "p3.2xlarge", + "i2.4xlarge", + "m5.12xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "m5n.12xlarge", + "d3.8xlarge", + "c6i.32xlarge", + "r6idn.24xlarge", + "r5n.4xlarge", + "c6id.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "i3en.6xlarge", + "r5d.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "g3.16xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "r5a.8xlarge", + "m5d.12xlarge", + "m6id.8xlarge", + "r5n.16xlarge", + "d3.xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "m6id.16xlarge", + "x1e.4xlarge", + "r6idn.16xlarge", + "p2.xlarge", + "c6g.xlarge", + "t1.micro", + "c4.4xlarge", + "m1.xlarge", "g4dn.8xlarge", - "m5n.2xlarge", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge", - "m5dn.2xlarge", - "r5dn.2xlarge", - "m6i.8xlarge", - "m1.large" + "m1.small", + "m6g.8xlarge", + "c6in.32xlarge" ] }, "us-west-1": { "enum": [ - "m6gd.xlarge", - "c5.12xlarge", - "i2.xlarge", - "m5zn.6xlarge", - "c3.4xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c5a.16xlarge", + "r5.24xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "r3.2xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "r6a.12xlarge", + "c5d.9xlarge", + "c4.xlarge", + "d2.4xlarge", + "r3.8xlarge", + "c6gn.xlarge", + "r7gd.16xlarge", + "m6idn.4xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "c3.large", + "c7gd.12xlarge", + "r5ad.8xlarge", + "m6a.32xlarge", + "r4.8xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6a.4xlarge", + "r6g.4xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c3.xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "x2iedn.4xlarge", + "c5d.xlarge", "m5d.16xlarge", - "r5ad.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "c6in.4xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", + "hs1.8xlarge", + "i4i.32xlarge", + "c4.large", + "i3en.2xlarge", "x2idn.16xlarge", - "r6i.24xlarge", - "x2idn.32xlarge", - "z1d.3xlarge", - "z1d.xlarge", - "m4.10xlarge", - "c5n.9xlarge", - "m6gd.2xlarge", - "i3en.12xlarge", - "r5a.xlarge", - "t1.micro", - "m5a.24xlarge", - "c6gd.2xlarge", + "m5zn.6xlarge", + "c5.2xlarge", + "c1.medium", + "m5zn.2xlarge", + "c7g.16xlarge", + "r6gd.4xlarge", + "c6a.xlarge", + "r5d.16xlarge", "r5ad.24xlarge", - "c6gd.4xlarge", - "m6i.4xlarge", - "c6gn.12xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "c5a.2xlarge", + "cr1.8xlarge", + "c6g.4xlarge", + "r5a.12xlarge", + "m7g.2xlarge", + "c5n.2xlarge", + "r6g.8xlarge", + "i4i.24xlarge", + "r6i.4xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "i2.2xlarge", + "x2iedn.xlarge", + "r4.16xlarge", + "m7g.16xlarge", + "m6gd.16xlarge", + "m4.large", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", + "m1.large", + "d2.8xlarge", + "r5.xlarge", + "r5n.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "m6a.24xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", "c1.xlarge", - "m5ad.24xlarge", - "i3.xlarge", - "m6a.8xlarge", - "c6i.xlarge", - "g4dn.4xlarge", + "m3.medium", + "c5.xlarge", + "m6i.12xlarge", + "r7g.12xlarge", + "z1d.12xlarge", + "m1.medium", + "r7g.16xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", + "r5.8xlarge", + "c5.9xlarge", + "d2.2xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "m6i.16xlarge", + "c6i.16xlarge", + "m6in.4xlarge", + "m7gd.2xlarge", + "m5d.8xlarge", + "c6a.16xlarge", + "c7gd.16xlarge", + "r6g.2xlarge", + "m6in.24xlarge", + "m3.2xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", "r5ad.4xlarge", - "r5d.24xlarge", - "x2iedn.24xlarge", - "i3.2xlarge", + "c5.4xlarge", + "c5.24xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", + "c5d.2xlarge", + "cg1.4xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", "c5d.4xlarge", - "m1.medium", - "c6g.xlarge", "m5a.xlarge", - "c5a.xlarge", - "r3.4xlarge", - "m5a.16xlarge", - "i3en.2xlarge", - "c6gn.xlarge", - "r6gd.16xlarge", - "g2.2xlarge", - "r6g.2xlarge", - "m1.xlarge", + "c6gd.16xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", + "m6i.8xlarge", + "m5.xlarge", + "m5.4xlarge", "z1d.2xlarge", - "i2.2xlarge", + "c6in.xlarge", + "r5ad.16xlarge", + "c3.2xlarge", + "m6a.8xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m6idn.2xlarge", + "c7g.4xlarge", + "r6a.16xlarge", + "i3en.3xlarge", + "m5.2xlarge", "r5n.2xlarge", - "x2iedn.4xlarge", - "i4i.2xlarge", - "m5d.24xlarge", - "m6i.16xlarge", - "r5a.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "r6gd.8xlarge", - "m3.xlarge", + "m6a.xlarge", + "c5.18xlarge", + "m7g.xlarge", + "m6gd.xlarge", + "m6i.24xlarge", + "m6idn.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "i3en.24xlarge", + "r7g.8xlarge", + "c6gn.4xlarge", + "c7g.8xlarge", "m6a.4xlarge", - "m6g.16xlarge", - "m5d.12xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6g.16xlarge", - "m5ad.12xlarge", - "c6gn.2xlarge", - "m5.16xlarge", - "r4.4xlarge", - "m6a.24xlarge", - "c3.large", + "r7g.xlarge", + "c5n.18xlarge", "m5ad.2xlarge", - "r6gd.4xlarge", - "c3.2xlarge", - "m6g.xlarge", - "i2.4xlarge", - "r6gd.xlarge", - "c5a.8xlarge", - "m5d.2xlarge", - "m5a.4xlarge", - "cc1.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", + "m2.xlarge", + "c7gd.xlarge", + "r6i.2xlarge", + "c6a.48xlarge", "z1d.6xlarge", - "m6g.8xlarge", - "m6a.xlarge", - "m1.small", - "r4.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", "c6i.12xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "m5zn.3xlarge", - "c6gd.xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r6i.8xlarge", - "m4.large", - "r5.12xlarge", - "r6gd.2xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "i4i.4xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "i4i.32xlarge", - "m5zn.2xlarge", - "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "r5d.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", "i3.16xlarge", - "g4dn.xlarge", - "r3.xlarge", - "d2.8xlarge", - "r3.2xlarge", - "c4.2xlarge", - "c6gn.8xlarge", "c6i.8xlarge", - "c5.4xlarge", - "g3.16xlarge", - "c6gd.12xlarge", - "c5.2xlarge", - "c4.4xlarge", - "m2.2xlarge", - "m5.12xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r5n.16xlarge", - "m6gd.8xlarge", - "r6g.8xlarge", - "c5d.xlarge", - "r4.xlarge", - "r5a.16xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "g3.8xlarge", - "m6gd.12xlarge", - "cg1.4xlarge", - "c6i.4xlarge", - "i3en.6xlarge", - "m6g.2xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "c6in.2xlarge", + "i3.4xlarge", + "m6in.2xlarge", "m5zn.12xlarge", - "hi1.4xlarge", - "m6i.24xlarge", - "m6a.32xlarge", - "x2iedn.32xlarge", + "m6gd.2xlarge", + "m6in.32xlarge", + "c6g.16xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "m5.24xlarge", + "r6gd.2xlarge", + "r5n.12xlarge", + "r4.xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "c6gd.4xlarge", + "r6a.xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "c3.4xlarge", "m2.4xlarge", - "c5a.16xlarge", - "m5.4xlarge", - "m6i.32xlarge", - "hs1.8xlarge", - "m6gd.16xlarge", + "m4.16xlarge", + "m5d.4xlarge", + "r6g.xlarge", + "cc1.4xlarge", + "m5zn.3xlarge", + "r5d.24xlarge", + "c6in.24xlarge", "m4.xlarge", - "m5.8xlarge", - "m6a.2xlarge", - "r6i.16xlarge", - "d2.2xlarge", - "d2.4xlarge", - "x2iedn.2xlarge", - "i4i.16xlarge", - "c5n.18xlarge", - "i3.4xlarge", - "r5.xlarge", - "c5n.4xlarge", - "m4.4xlarge", - "r5a.8xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "i4i.2xlarge", + "i3.8xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", "r5.2xlarge", - "cr1.8xlarge", - "m6a.48xlarge", - "m6i.12xlarge", - "m5a.8xlarge", - "c5n.xlarge", - "m6g.4xlarge", - "i4i.xlarge", - "m5ad.xlarge", - "c6i.16xlarge", - "m5d.4xlarge", - "cc2.8xlarge", + "x2idn.32xlarge", "m3.large", - "d2.xlarge", - "c1.medium", - "z1d.12xlarge", - "m3.medium", - "m6i.2xlarge", - "m6g.12xlarge", - "x2iedn.xlarge", - "r6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "x2iedn.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "m5ad.8xlarge", - "c3.xlarge", + "c7gd.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "r5a.2xlarge", + "r6a.32xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "i4i.12xlarge", + "g3.4xlarge", + "r7gd.4xlarge", + "r7gd.2xlarge", + "c4.2xlarge", "m6gd.4xlarge", + "r5.16xlarge", + "m6i.2xlarge", + "m6i.32xlarge", + "c5a.xlarge", "r5.4xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "r5a.2xlarge", - "c5a.24xlarge", - "r5n.4xlarge", - "c4.large", - "c6i.32xlarge", - "r5n.24xlarge", - "m5.2xlarge", - "r6i.2xlarge", - "c3.8xlarge", - "r5n.8xlarge", - "m5.xlarge", - "c6gn.4xlarge", - "c5n.2xlarge", - "m5d.8xlarge", + "c7g.xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m5d.2xlarge", + "c6gd.xlarge", + "m5zn.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "m2.2xlarge", + "c5a.24xlarge", "r5ad.12xlarge", "r5n.xlarge", - "m5ad.4xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", - "c6gn.16xlarge", - "m2.xlarge", - "m6i.xlarge", - "i2.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "i3en.24xlarge", - "r6i.12xlarge", - "x2idn.24xlarge", - "r5d.8xlarge", + "m5ad.8xlarge", + "i2.xlarge", + "r6i.16xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", + "i4i.4xlarge", + "c6g.2xlarge", + "r6i.8xlarge", + "d2.xlarge", + "g4dn.2xlarge", + "r6a.48xlarge", + "c6g.12xlarge", + "z1d.3xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "c5.12xlarge", "r6i.32xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "g4dn.16xlarge", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "i4i.8xlarge", - "i3en.xlarge", - "r6gd.12xlarge", - "m6a.16xlarge", "r4.2xlarge", - "c6g.4xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "i3en.12xlarge", + "m6i.xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "m5.16xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "hi1.4xlarge", + "m6i.4xlarge", + "m6idn.xlarge", + "c7gd.2xlarge", + "r6i.12xlarge", + "r6gd.8xlarge", + "i2.4xlarge", + "m6gd.8xlarge", + "m5.12xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "c6a.32xlarge", + "m7g.12xlarge", + "c6i.32xlarge", + "r5n.4xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", + "i3en.6xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "g3.16xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "m5d.12xlarge", + "r5a.8xlarge", + "r5n.16xlarge", + "c5d.24xlarge", + "r6a.24xlarge", + "c6g.xlarge", + "t1.micro", + "c6gd.8xlarge", + "m1.xlarge", + "c4.4xlarge", "g4dn.8xlarge", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "m6i.8xlarge", - "m1.large" + "m1.small", + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "m6a.16xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" ] }, "us-west-2": { "enum": [ - "g5.12xlarge", - "r6i.24xlarge", - "m6gd.2xlarge", - "g5.2xlarge", + "x1e.2xlarge", + "m7gd.16xlarge", + "x2iedn.24xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m5ad.xlarge", + "c7gn.xlarge", + "c5a.16xlarge", + "r5.24xlarge", "x1.32xlarge", - "c6i.xlarge", - "g4dn.4xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "m1.medium", - "m5a.xlarge", - "m5a.16xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "r3.2xlarge", + "r5ad.xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "r6a.12xlarge", + "r7i.16xlarge", + "c7a.4xlarge", + "r7i.4xlarge", + "m5dn.4xlarge", + "c4.xlarge", + "d3en.12xlarge", + "d2.4xlarge", + "r3.8xlarge", "c6gn.xlarge", + "r7gd.16xlarge", + "r7a.32xlarge", + "m6idn.4xlarge", + "c6i.4xlarge", + "m6idn.24xlarge", + "c3.large", + "r5b.2xlarge", + "c7i.16xlarge", + "c7gd.12xlarge", + "r5ad.8xlarge", + "m6id.xlarge", + "is4gen.4xlarge", + "m7a.32xlarge", + "r4.8xlarge", + "m6a.32xlarge", + "m7i-flex.8xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6a.4xlarge", + "r6g.4xlarge", + "r6idn.32xlarge", + "c7a.xlarge", + "h1.16xlarge", + "m6in.xlarge", + "m6in.12xlarge", + "c3.xlarge", + "c5a.4xlarge", + "r6gd.12xlarge", + "c5d.xlarge", + "x2iedn.4xlarge", + "m5d.16xlarge", + "g3.8xlarge", + "m5a.8xlarge", + "c5ad.xlarge", + "r5b.4xlarge", + "c6in.4xlarge", + "c7a.48xlarge", + "c5ad.2xlarge", + "c3.8xlarge", + "x2iedn.16xlarge", + "x1e.8xlarge", + "hs1.8xlarge", + "i4i.32xlarge", + "c4.large", + "i3en.2xlarge", + "x2idn.16xlarge", + "i4g.8xlarge", + "m7i.16xlarge", + "r6id.4xlarge", + "m5zn.6xlarge", + "c5.2xlarge", + "c1.medium", + "m5zn.2xlarge", + "m7a.2xlarge", + "c7g.16xlarge", + "g3s.xlarge", + "r6gd.4xlarge", + "c5ad.12xlarge", + "c6a.xlarge", + "r7iz.12xlarge", + "r6in.12xlarge", + "r5d.16xlarge", + "r5ad.24xlarge", + "r6idn.8xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "g4dn.xlarge", + "c5n.xlarge", + "c5a.8xlarge", + "i4i.xlarge", + "x2gd.xlarge", + "c5a.2xlarge", + "m7a.12xlarge", + "c7gn.2xlarge", + "cr1.8xlarge", + "r5b.xlarge", + "r5a.12xlarge", + "p2.8xlarge", + "m7g.2xlarge", + "c6g.4xlarge", + "c5n.2xlarge", + "m5dn.24xlarge", + "r6g.8xlarge", + "im4gn.xlarge", + "i4i.24xlarge", + "r6i.4xlarge", + "r5dn.12xlarge", + "x2idn.24xlarge", + "r5a.24xlarge", + "r6in.4xlarge", "i2.2xlarge", - "d3en.12xlarge", - "d3en.xlarge", - "m5d.24xlarge", - "m6a.12xlarge", - "c6g.8xlarge", - "m3.xlarge", - "m6a.4xlarge", - "m5d.12xlarge", - "r6i.xlarge", - "m5d.xlarge", - "c6gn.2xlarge", - "r4.4xlarge", - "d3.xlarge", + "r4.16xlarge", + "m7g.16xlarge", + "x2iedn.xlarge", + "r6idn.xlarge", + "r5dn.2xlarge", + "m6gd.16xlarge", "c5ad.24xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "r6a.2xlarge", - "r5dn.24xlarge", - "m6g.8xlarge", - "m1.small", - "c5.24xlarge", - "r5.16xlarge", "m4.large", - "c6i.24xlarge", - "r6g.16xlarge", - "r5ad.xlarge", - "r5ad.8xlarge", - "c5.xlarge", - "m5ad.16xlarge", - "c5d.18xlarge", - "x1e.8xlarge", + "m6idn.12xlarge", + "r6i.xlarge", + "m5d.24xlarge", + "m6in.16xlarge", + "i3en.xlarge", + "m1.large", "d2.8xlarge", - "c4.2xlarge", - "c6gd.12xlarge", - "d3en.6xlarge", - "c5ad.2xlarge", - "r6g.8xlarge", + "r5.xlarge", + "d3.2xlarge", + "r7a.2xlarge", + "c7i.xlarge", + "r5n.24xlarge", + "c7i.2xlarge", + "r7a.24xlarge", + "m5.8xlarge", + "i2.8xlarge", + "im4gn.8xlarge", + "m6a.24xlarge", + "i4g.16xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "i4i.16xlarge", + "g5.8xlarge", + "c1.xlarge", + "m3.medium", + "i4g.2xlarge", + "r7a.16xlarge", + "c5.xlarge", "d3en.8xlarge", - "c6g.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", + "is4gen.xlarge", + "m6i.12xlarge", + "c7gn.12xlarge", + "c5ad.8xlarge", + "r7g.12xlarge", + "z1d.12xlarge", + "m1.medium", + "r7g.16xlarge", + "r6in.32xlarge", + "c6gn.2xlarge", + "c6a.8xlarge", + "r7i.24xlarge", + "r5.8xlarge", + "c6id.24xlarge", + "c6id.12xlarge", "h1.2xlarge", - "cg1.4xlarge", - "h1.8xlarge", - "m5zn.12xlarge", - "m5n.16xlarge", - "x2iedn.32xlarge", - "c5a.16xlarge", - "m5.8xlarge", + "c6id.2xlarge", + "g5.48xlarge", + "im4gn.16xlarge", "d2.2xlarge", - "x2iedn.2xlarge", - "i3.4xlarge", - "r5.xlarge", - "c5n.xlarge", - "is4gen.xlarge", - "r5dn.16xlarge", + "c5.9xlarge", + "c5a.12xlarge", + "r7g.2xlarge", + "p3.8xlarge", "c6i.16xlarge", - "r5b.8xlarge", - "g5.xlarge", - "x2iedn.xlarge", - "r6a.48xlarge", - "r5b.xlarge", - "x1e.2xlarge", - "m5n.4xlarge", + "m6i.16xlarge", + "m5n.2xlarge", + "m6in.4xlarge", + "m7gd.2xlarge", + "c7i.12xlarge", + "m5d.8xlarge", + "c6a.16xlarge", + "c7gd.16xlarge", + "r6g.2xlarge", + "m6in.24xlarge", + "m3.2xlarge", + "c6a.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "x2iedn.2xlarge", + "x1e.xlarge", + "c6id.16xlarge", + "g5.2xlarge", + "r7iz.32xlarge", + "r5ad.4xlarge", + "i4g.xlarge", + "c5.4xlarge", + "c5.24xlarge", + "d3.4xlarge", + "r7gd.xlarge", + "c7gd.4xlarge", + "c5d.2xlarge", + "d3en.xlarge", + "cg1.4xlarge", + "m6in.8xlarge", + "c6gd.2xlarge", + "c5d.4xlarge", + "c7a.12xlarge", "m5n.24xlarge", + "m5a.xlarge", + "c6gd.16xlarge", + "m7gd.xlarge", + "c6a.4xlarge", + "r5.12xlarge", + "r6in.8xlarge", + "m6i.8xlarge", "m5.xlarge", - "r5b.4xlarge", - "r5ad.12xlarge", - "g3.4xlarge", - "c6gd.8xlarge", - "m5zn.xlarge", - "r6a.16xlarge", - "m3.2xlarge", - "m5dn.8xlarge", - "r6gd.12xlarge", - "g5.16xlarge", - "r6g.xlarge", - "r6id.24xlarge", - "im4gn.2xlarge", - "c3.4xlarge", - "m5n.12xlarge", - "m5d.16xlarge", - "c5ad.4xlarge", - "c7g.12xlarge", - "z1d.3xlarge", - "x1e.4xlarge", - "i3en.12xlarge", - "c6gd.4xlarge", - "r5ad.24xlarge", - "m5dn.xlarge", - "r5dn.12xlarge", - "c6gn.12xlarge", - "i3.xlarge", - "m5ad.24xlarge", + "r7iz.8xlarge", + "m5.4xlarge", + "z1d.2xlarge", "c6in.xlarge", + "is4gen.2xlarge", + "r5ad.16xlarge", + "c3.2xlarge", "m6a.8xlarge", - "r5ad.4xlarge", - "i3.2xlarge", - "r6gd.16xlarge", - "i3en.2xlarge", - "r6g.2xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "m6idn.2xlarge", + "c7g.4xlarge", + "r6a.16xlarge", + "i3en.3xlarge", + "m5.2xlarge", + "m7i.2xlarge", + "r7a.4xlarge", "r5n.2xlarge", - "i4i.2xlarge", - "r6gd.8xlarge", - "m6g.16xlarge", - "m5.16xlarge", - "m5ad.12xlarge", - "m6a.24xlarge", - "m5n.xlarge", - "m6g.xlarge", - "d3en.2xlarge", - "m5d.2xlarge", - "is4gen.8xlarge", - "c6gd.16xlarge", - "r5n.12xlarge", - "m5dn.4xlarge", - "r4.8xlarge", - "c6i.12xlarge", - "c7g.8xlarge", - "r6i.8xlarge", - "r5b.12xlarge", - "c4.8xlarge", - "i4i.32xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r3.2xlarge", - "x1.16xlarge", - "g3.16xlarge", - "r5n.16xlarge", - "r5a.16xlarge", - "r5a.12xlarge", - "c6in.32xlarge", - "m6g.2xlarge", + "m6a.xlarge", + "c5.18xlarge", + "m5dn.16xlarge", + "m7g.xlarge", + "m6gd.xlarge", "m6i.24xlarge", - "m6a.32xlarge", - "d3.2xlarge", - "m6a.2xlarge", + "m6idn.8xlarge", + "c5d.18xlarge", + "i3en.24xlarge", + "c6i.xlarge", + "r7g.8xlarge", + "c6gn.4xlarge", + "c7g.8xlarge", + "r7g.xlarge", + "m6a.4xlarge", + "m7i.24xlarge", "c5n.18xlarge", - "c6in.16xlarge", - "cr1.8xlarge", - "m6i.12xlarge", - "m5a.8xlarge", - "m5dn.24xlarge", - "x1e.32xlarge", - "m5ad.xlarge", - "m3.large", - "z1d.12xlarge", - "m6g.12xlarge", - "i3.8xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "m6gd.4xlarge", - "r6id.2xlarge", - "r5.4xlarge", - "r5a.2xlarge", - "r5n.4xlarge", - "c4.large", - "m5.2xlarge", - "c3.8xlarge", - "c5n.2xlarge", - "c6gn.16xlarge", - "m2.xlarge", - "i2.8xlarge", - "r5d.16xlarge", - "m5dn.12xlarge", - "r6g.4xlarge", - "i4i.8xlarge", - "m6a.16xlarge", - "r5b.2xlarge", - "m5n.2xlarge", - "m6i.8xlarge", - "i2.xlarge", "p2.16xlarge", - "g5.8xlarge", - "r6a.8xlarge", - "z1d.xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "c6in.24xlarge", - "r6id.8xlarge", - "x2iedn.24xlarge", - "c7g.4xlarge", - "r3.4xlarge", - "g2.2xlarge", - "c5ad.12xlarge", - "z1d.2xlarge", - "x2iedn.4xlarge", - "m6gd.xlarge", "m5ad.2xlarge", - "r6gd.4xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "r5d.4xlarge", - "r6id.4xlarge", - "r5a.4xlarge", - "m6a.xlarge", - "r5dn.xlarge", - "m5a.2xlarge", - "m5zn.3xlarge", - "c5d.12xlarge", - "m5a.12xlarge", - "c7g.16xlarge", - "i4i.4xlarge", - "r5b.24xlarge", - "m5zn.2xlarge", - "r6a.24xlarge", + "m2.xlarge", + "m5dn.12xlarge", + "c7gd.xlarge", + "c7i.24xlarge", + "r6i.2xlarge", + "c6a.48xlarge", + "z1d.6xlarge", + "r7i.8xlarge", + "c6i.12xlarge", + "m6id.32xlarge", "i3.16xlarge", - "p2.xlarge", - "g4dn.xlarge", - "r3.xlarge", - "c5.4xlarge", - "c6gn.8xlarge", - "c5.2xlarge", "c6i.8xlarge", - "m5.12xlarge", - "im4gn.16xlarge", - "c5d.2xlarge", - "c6in.12xlarge", - "g3.8xlarge", - "m5dn.16xlarge", - "hi1.4xlarge", - "m5n.8xlarge", + "m5d.xlarge", + "m5ad.16xlarge", + "r7iz.4xlarge", + "r6in.16xlarge", + "m5dn.2xlarge", + "c7a.32xlarge", + "c6in.2xlarge", + "c7i.8xlarge", + "i3.4xlarge", + "r6in.xlarge", + "m6in.2xlarge", + "m5zn.12xlarge", + "m6gd.2xlarge", + "m6in.32xlarge", + "c6id.8xlarge", + "c6g.16xlarge", + "r6i.24xlarge", + "r6gd.16xlarge", + "h1.4xlarge", + "m7i.4xlarge", + "m5.24xlarge", + "r5b.24xlarge", + "r6in.2xlarge", + "c7i.48xlarge", + "r6gd.2xlarge", + "r5n.12xlarge", + "m7i.8xlarge", + "r4.xlarge", + "r6idn.4xlarge", + "g5.4xlarge", + "r6a.xlarge", + "c6gd.4xlarge", + "r6g.12xlarge", + "c5n.9xlarge", + "m6idn.16xlarge", + "g4dn.16xlarge", + "r5dn.24xlarge", + "c3.4xlarge", "m2.4xlarge", - "m5.4xlarge", - "c5ad.16xlarge", - "c6in.4xlarge", - "i4i.16xlarge", - "r5dn.4xlarge", - "m6a.48xlarge", - "p2.8xlarge", - "m6g.4xlarge", + "r6id.16xlarge", + "c6id.32xlarge", + "m4.16xlarge", + "x1.16xlarge", "m5d.4xlarge", - "cc2.8xlarge", - "c1.medium", - "x1e.xlarge", + "r6g.xlarge", + "cc1.4xlarge", + "m5zn.3xlarge", + "c6id.xlarge", + "g5.xlarge", + "r5d.24xlarge", + "c6in.24xlarge", + "m5n.xlarge", + "r5b.16xlarge", + "m4.xlarge", + "r5n.8xlarge", + "m5ad.24xlarge", + "m7a.4xlarge", + "r7a.12xlarge", + "g4dn.4xlarge", + "x2iedn.8xlarge", + "r7i.12xlarge", + "r3.xlarge", + "z1d.xlarge", + "r3.4xlarge", + "m7a.8xlarge", + "i3.8xlarge", + "i4i.2xlarge", + "x2iedn.32xlarge", + "c6gn.12xlarge", + "m6gd.12xlarge", + "c7g.2xlarge", + "r5ad.2xlarge", + "c7gn.4xlarge", + "i4i.8xlarge", + "r6gd.xlarge", + "i3.xlarge", + "r5.2xlarge", + "x2idn.32xlarge", + "m3.large", + "i4g.4xlarge", + "c5ad.4xlarge", + "c7gd.8xlarge", + "h1.8xlarge", + "m7gd.12xlarge", + "m5ad.4xlarge", + "r7iz.xlarge", + "m7i.48xlarge", + "r6a.32xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "r6idn.12xlarge", + "c6g.8xlarge", + "r6id.8xlarge", + "i4i.12xlarge", + "r7i.48xlarge", + "m6id.2xlarge", + "r7gd.4xlarge", + "r6idn.2xlarge", + "r7gd.2xlarge", + "g3.4xlarge", + "c4.2xlarge", + "m6gd.4xlarge", + "r6in.24xlarge", + "r5dn.xlarge", + "r5.16xlarge", + "c7i.4xlarge", "m6i.2xlarge", - "g3s.xlarge", - "r6g.12xlarge", - "c3.xlarge", + "m6i.32xlarge", + "c5a.xlarge", + "r5.4xlarge", + "m5dn.8xlarge", "c7g.xlarge", + "c7a.8xlarge", + "r5b.12xlarge", + "m5n.16xlarge", + "m7i-flex.2xlarge", + "m3.xlarge", + "m5a.4xlarge", + "m7a.xlarge", + "m5d.2xlarge", + "r7a.8xlarge", + "c6gd.xlarge", + "m5zn.xlarge", + "r6a.8xlarge", + "m6a.2xlarge", + "c7gn.8xlarge", + "p5.48xlarge", + "m2.2xlarge", + "is4gen.8xlarge", + "x1e.16xlarge", "c5a.24xlarge", + "m5n.4xlarge", "r6id.xlarge", - "r6i.2xlarge", - "r5n.8xlarge", - "c6gn.4xlarge", - "m5d.8xlarge", - "r6a.xlarge", + "m6id.4xlarge", + "x2gd.16xlarge", + "r7a.48xlarge", + "r5ad.12xlarge", "r5n.xlarge", - "r5d.8xlarge", - "m6i.xlarge", - "c7g.2xlarge", - "r6i.32xlarge", - "g4dn.16xlarge", - "c5ad.xlarge", - "c4.xlarge", + "m5ad.8xlarge", + "r5dn.4xlarge", + "i2.xlarge", + "c7a.2xlarge", + "r6i.16xlarge", + "r6id.12xlarge", + "g5.12xlarge", + "g4dn.12xlarge", + "r5d.12xlarge", + "r7gd.8xlarge", + "r6id.24xlarge", "im4gn.4xlarge", - "r4.2xlarge", - "is4gen.4xlarge", + "i4i.4xlarge", "c6g.2xlarge", - "c5.18xlarge", - "m1.large", + "r6i.8xlarge", + "m7i-flex.4xlarge", + "d2.xlarge", + "m7i-flex.xlarge", + "c6g.12xlarge", + "r6a.48xlarge", + "g4dn.2xlarge", + "c7gn.16xlarge", + "z1d.3xlarge", + "m7gd.4xlarge", + "m4.2xlarge", + "x1e.32xlarge", + "g5.24xlarge", "c5.12xlarge", - "m5zn.6xlarge", - "g4dn.12xlarge", - "m4.16xlarge", - "m5.24xlarge", - "r5ad.16xlarge", - "x2idn.16xlarge", - "x2idn.32xlarge", - "r6a.4xlarge", + "r6i.32xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "r4.4xlarge", + "m4.4xlarge", + "i3en.12xlarge", "r6id.32xlarge", - "c5n.9xlarge", - "c6in.8xlarge", - "m4.10xlarge", + "m6id.24xlarge", "d3en.4xlarge", - "t1.micro", - "c6gd.2xlarge", - "im4gn.8xlarge", - "r6a.12xlarge", + "m5n.8xlarge", + "m6i.xlarge", + "c6in.16xlarge", + "m5a.12xlarge", + "c6gd.12xlarge", + "c4.8xlarge", + "m5dn.xlarge", + "p3.16xlarge", + "c6in.12xlarge", + "c5n.4xlarge", + "r5dn.16xlarge", + "m5.16xlarge", + "m6id.12xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "im4gn.2xlarge", + "hi1.4xlarge", "m6i.4xlarge", + "m6idn.xlarge", + "g5.16xlarge", + "c7gd.2xlarge", + "r6i.12xlarge", + "r7i.2xlarge", + "r7iz.2xlarge", "p3.2xlarge", - "g5.4xlarge", - "c1.xlarge", - "p3.16xlarge", - "r5dn.8xlarge", - "c6g.xlarge", - "c5a.xlarge", - "r6a.32xlarge", - "m1.xlarge", - "m6i.16xlarge", - "d3.4xlarge", - "r5a.24xlarge", - "c6g.16xlarge", - "h1.4xlarge", - "c3.large", - "c3.2xlarge", + "r6gd.8xlarge", + "x2gd.2xlarge", + "c7a.24xlarge", "i2.4xlarge", - "r6gd.xlarge", - "cc1.4xlarge", - "c5d.24xlarge", - "z1d.6xlarge", - "p3.8xlarge", - "g4dn.2xlarge", - "m4.2xlarge", - "r6id.12xlarge", - "c6gd.xlarge", - "r5.12xlarge", - "r6gd.2xlarge", - "im4gn.xlarge", - "c6in.2xlarge", - "c4.4xlarge", - "m2.2xlarge", "m6gd.8xlarge", - "r5ad.2xlarge", - "r3.8xlarge", - "r4.xlarge", - "c5d.xlarge", + "m5.12xlarge", + "r5b.8xlarge", + "m6g.4xlarge", + "m6idn.32xlarge", + "m5n.12xlarge", + "m7i.xlarge", + "c6a.32xlarge", + "m7g.12xlarge", + "m7i.12xlarge", "d3.8xlarge", - "c6i.2xlarge", - "m6gd.12xlarge", - "c6i.4xlarge", + "c6i.32xlarge", + "r6idn.24xlarge", + "r5n.4xlarge", + "c6id.4xlarge", + "r5dn.8xlarge", + "r6g.16xlarge", + "r7gd.12xlarge", + "x2gd.8xlarge", "i3en.6xlarge", - "g5.48xlarge", - "m6i.32xlarge", - "hs1.8xlarge", - "m6gd.16xlarge", - "m4.xlarge", - "r6i.16xlarge", - "d2.4xlarge", - "c5n.4xlarge", - "m4.4xlarge", + "m6a.12xlarge", + "r5d.2xlarge", + "r6a.2xlarge", + "r7iz.16xlarge", + "c6in.8xlarge", + "r5d.4xlarge", + "i3.2xlarge", + "g3.16xlarge", + "m6g.12xlarge", + "x2gd.12xlarge", + "c5d.12xlarge", + "m5ad.12xlarge", + "d3en.2xlarge", + "m7a.16xlarge", "r5a.8xlarge", - "r5.2xlarge", - "i4i.xlarge", - "d2.xlarge", - "h1.16xlarge", - "m3.medium", - "r5b.16xlarge", - "is4gen.2xlarge", - "x2iedn.8xlarge", - "c5.9xlarge", - "m5ad.8xlarge", - "c5ad.8xlarge", - "i3en.3xlarge", - "x2iedn.16xlarge", - "r5n.24xlarge", - "c6i.32xlarge", - "r6id.16xlarge", - "x1e.16xlarge", - "m5ad.4xlarge", - "i3en.24xlarge", - "c5d.9xlarge", - "x2idn.24xlarge", - "r6i.12xlarge", - "c5a.12xlarge", - "r6i.4xlarge", - "i3en.xlarge", - "c6g.4xlarge", + "m5d.12xlarge", + "m6id.8xlarge", + "r7a.xlarge", + "r5n.16xlarge", + "d3.xlarge", + "c7a.16xlarge", + "c5d.24xlarge", + "r6id.2xlarge", + "m6id.16xlarge", + "r6a.24xlarge", + "x1e.4xlarge", + "r6idn.16xlarge", + "p2.xlarge", + "c6g.xlarge", + "m7a.24xlarge", + "c6gd.8xlarge", + "t1.micro", + "d3en.6xlarge", + "m1.xlarge", + "c4.4xlarge", + "x2gd.4xlarge", "g4dn.8xlarge", - "m5dn.2xlarge", - "g5.24xlarge", - "r5dn.2xlarge" + "r7i.xlarge", + "m1.small", + "m6g.8xlarge", + "m6a.48xlarge", + "m7gd.8xlarge", + "m7g.4xlarge", + "c5ad.16xlarge", + "m7a.48xlarge", + "m6a.16xlarge", + "c6gn.16xlarge", + "c6in.32xlarge", + "r7g.4xlarge" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_gamelift_fleet/ec2instancetype_enum.json b/src/cfnlint/data/schemas/extensions/aws_gamelift_fleet/ec2instancetype_enum.json index 8a897d2a18..0a7f36505e 100644 --- a/src/cfnlint/data/schemas/extensions/aws_gamelift_fleet/ec2instancetype_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_gamelift_fleet/ec2instancetype_enum.json @@ -2,46 +2,70 @@ "_description": "Automatically updated using update_specs_from_pricing", "af-south-1": { "enum": [ - "c5d.xlarge", + "r5.4xlarge", + "r5d.12xlarge", + "m5.12xlarge", + "r6g.medium", + "r6g.xlarge", + "r5.12xlarge", + "r6g.8xlarge", + "r5.2xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "m6g.medium", + "c5.xlarge", + "m6g.4xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m5.4xlarge", + "m5.xlarge", + "c5.2xlarge", + "c5d.24xlarge", + "m5.16xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r6g.4xlarge", + "m6g.large", + "r5.24xlarge", + "m6g.xlarge", + "m5.24xlarge", + "c6i.2xlarge", + "r6g.16xlarge", + "c5.4xlarge", + "r5.large", + "c5.24xlarge", + "m5.large", + "r5d.xlarge", + "r6g.large", + "m6g.16xlarge", + "c6i.large", + "c5d.2xlarge", "r5.8xlarge", + "c5d.xlarge", + "c5d.9xlarge", + "m6g.8xlarge", + "r5d.16xlarge", + "c6i.12xlarge", + "r5d.large", "c5.12xlarge", - "c5d.2xlarge", + "c6i.24xlarge", "c5.9xlarge", + "c6i.8xlarge", "r5d.2xlarge", - "r5.4xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "m5.24xlarge", "m5.2xlarge", - "m5.large", - "m5.xlarge", - "c5d.large", - "m5.4xlarge", - "c5.24xlarge", + "r6g.12xlarge", + "r5.xlarge", "r5.16xlarge", + "c5.large", + "r5d.4xlarge", + "m6g.12xlarge", + "c5d.4xlarge", "c5d.12xlarge", - "r5.12xlarge", "m5.8xlarge", - "r5.large", - "r5d.24xlarge", - "c5d.4xlarge", - "r5d.8xlarge", - "r5.xlarge", - "c5d.9xlarge", - "r5.2xlarge", - "c5.xlarge", - "c5.large", - "r5d.xlarge", - "r5d.16xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "c5.4xlarge", - "r5d.large", - "c5.2xlarge", - "m5.16xlarge", + "c6i.16xlarge", "c5.18xlarge", - "m5.12xlarge" + "c6i.4xlarge", + "c5d.large" ] }, "all": { @@ -51,2268 +75,2836 @@ }, "ap-east-1": { "enum": [ - "c5d.xlarge", + "c6gn.8xlarge", + "r5d.12xlarge", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "c5a.16xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", "c5.12xlarge", - "c5d.2xlarge", + "r5d.large", "c5.9xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "c6g.large", + "c5.large", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", + "r6g.xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m5.16xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "c5.24xlarge", "c5a.4xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "c5d.xlarge", + "c5a.large", + "c6gn.12xlarge", + "c5d.4xlarge", + "m5.12xlarge", + "r6g.medium", + "r5.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6g.medium", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r5d.16xlarge", + "c6i.24xlarge", "r5d.2xlarge", + "m5.2xlarge", + "r5.16xlarge", "c5a.8xlarge", + "r5d.4xlarge", + "m6g.12xlarge", + "c5a.xlarge", "c5a.2xlarge", - "r5.24xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", "r5.4xlarge", - "r5d.4xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "c6gn.4xlarge", + "m6g.medium", "c5a.24xlarge", - "m5.24xlarge", - "m5.2xlarge", - "m5.large", - "m5.xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "c5.24xlarge", - "r5.16xlarge", - "r5.12xlarge", - "m5.8xlarge", + "c6g.xlarge", "r5.large", - "r5d.24xlarge", - "c5d.4xlarge", - "r5d.8xlarge", + "m5.large", + "c6i.12xlarge", + "m6g.8xlarge", + "c6i.8xlarge", "r5.xlarge", - "c5d.9xlarge", - "c5a.xlarge", - "r5.2xlarge", - "c5a.12xlarge", - "c5.xlarge", - "c5.large", - "c5d.18xlarge", - "r5d.xlarge", - "r5d.16xlarge", - "r5d.12xlarge", - "c5a.large", - "c5.4xlarge", - "r5d.large", - "c5.2xlarge", - "m5.16xlarge", - "c5.18xlarge", - "m5.12xlarge" + "c6gn.16xlarge", + "m5.8xlarge" ] }, "ap-northeast-1": { "enum": [ - "c5.12xlarge", - "c3.4xlarge", - "m5a.large", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "m3.medium", + "c5.xlarge", + "g5g.2xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m4.2xlarge", + "c5a.16xlarge", "r3.large", + "r5.24xlarge", + "m5.24xlarge", + "c6a.12xlarge", + "c6gn.2xlarge", "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", - "r5d.large", + "c6a.8xlarge", + "r3.2xlarge", + "r5.8xlarge", "m6g.16xlarge", - "m5.16xlarge", - "c6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.2xlarge", + "r4.xlarge", + "r5d.large", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r3.8xlarge", "r4.4xlarge", + "c6g.large", + "c5.large", + "c6gn.xlarge", + "m4.4xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "c6i.4xlarge", + "g5g.16xlarge", "c3.large", - "c3.2xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "r4.8xlarge", - "m4.2xlarge", - "c6i.12xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", - "r5.12xlarge", - "c6i.24xlarge", "m5a.12xlarge", - "r6g.16xlarge", + "r6g.xlarge", + "c6a.16xlarge", "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "r5d.xlarge", - "r3.xlarge", - "c5.4xlarge", - "r3.2xlarge", - "c4.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m3.2xlarge", + "m5.16xlarge", + "m4.xlarge", + "c6a.2xlarge", + "r4.8xlarge", + "c6a.24xlarge", "r5a.16xlarge", - "r6g.8xlarge", - "r4.xlarge", - "c5d.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", - "r4.large", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", + "c5.24xlarge", + "c5a.4xlarge", "r6g.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "r6g.medium", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", "m5a.8xlarge", - "c5.large", + "c6gn.12xlarge", + "c5d.4xlarge", + "c7g.medium", + "c7g.2xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", + "r6g.medium", + "c6a.4xlarge", + "r5.12xlarge", + "r5.2xlarge", "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", "m3.large", - "m3.medium", - "m6g.12xlarge", - "r6g.12xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "c3.xlarge", - "r5.4xlarge", - "c5a.24xlarge", + "m5.xlarge", + "m5.4xlarge", + "g5g.xlarge", + "c5.2xlarge", + "c6a.large", + "c6g.medium", + "c3.2xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "r6g.16xlarge", "r5a.2xlarge", - "c4.large", + "r5d.xlarge", + "c6a.xlarge", + "c6g.8xlarge", + "c4.2xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "c7g.large", "m5.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "r4.large", + "m6g.12xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5.4xlarge", + "r5a.8xlarge", + "c7g.xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "c7g.8xlarge", "m6g.medium", - "m5.xlarge", - "c3.8xlarge", - "c6g.large", + "c6gn.4xlarge", + "m3.xlarge", + "g5g.8xlarge", + "m5a.4xlarge", + "c5d.24xlarge", + "r5a.24xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "c6i.12xlarge", + "m6g.8xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "g5g.4xlarge" ] }, "ap-northeast-2": { "enum": [ - "m5a.large", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "c5.xlarge", + "g5g.2xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m4.2xlarge", + "c5a.16xlarge", "r3.large", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", + "r3.2xlarge", + "r5.8xlarge", "m6g.16xlarge", + "c5d.9xlarge", + "r4.xlarge", + "r4.2xlarge", "r5d.large", - "c6g.16xlarge", - "m5.16xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r3.8xlarge", "r4.4xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", + "g5g.16xlarge", + "m5a.12xlarge", + "r6g.xlarge", + "c4.8xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m4.xlarge", + "m5.16xlarge", "r4.8xlarge", - "c6i.12xlarge", - "m4.2xlarge", + "r5a.16xlarge", "m5a.2xlarge", - "r5.16xlarge", - "c5d.12xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", + "c5a.4xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", + "r6g.medium", "r5.12xlarge", - "m4.large", - "c6i.24xlarge", - "m5a.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "g5g.xlarge", + "c5.2xlarge", + "c6g.medium", "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", + "r5a.2xlarge", "r5d.xlarge", - "r5d.12xlarge", - "r3.xlarge", - "c5.4xlarge", + "c6g.8xlarge", "c4.2xlarge", - "r3.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", - "r5a.16xlarge", - "r4.xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r5a.12xlarge", - "r4.16xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "m5a.16xlarge", "r5d.2xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", - "r6g.large", + "m5.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", "r4.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "r6g.medium", - "m5a.8xlarge", - "c5.large", - "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", "m6g.12xlarge", - "r6g.12xlarge", - "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5a.8xlarge", "r5.4xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "c4.large", - "m5.2xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", "m6g.medium", - "m5.xlarge", - "c6g.large", + "c6gn.4xlarge", + "g5g.8xlarge", + "m5a.4xlarge", + "c5d.24xlarge", + "r5a.24xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "c6i.12xlarge", + "m6g.8xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "g5g.4xlarge" ] }, "ap-northeast-3": { "enum": [ - "r4.xlarge", + "c6gn.8xlarge", + "m4.10xlarge", + "r5d.12xlarge", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m4.2xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", "r5.8xlarge", - "c5d.xlarge", - "c5d.2xlarge", + "m6g.16xlarge", + "c5d.9xlarge", "c5.12xlarge", + "r4.xlarge", + "r5d.large", + "r4.2xlarge", "c5.9xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "r5.24xlarge", - "r5.4xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "m5.24xlarge", - "c4.large", - "m5.2xlarge", - "m5.large", - "m4.10xlarge", + "c4.xlarge", + "c6gn.large", + "r6g.12xlarge", + "r4.4xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", + "r6g.xlarge", + "c4.8xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m5.16xlarge", + "m4.xlarge", "r4.8xlarge", - "m5.xlarge", - "m4.2xlarge", - "c5d.large", - "m5.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", - "r5.12xlarge", - "m5.8xlarge", - "m4.xlarge", - "r4.large", - "r5.large", - "r5d.24xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "c5d.xlarge", + "c6gn.12xlarge", "c5d.4xlarge", - "r5d.8xlarge", - "r5.xlarge", - "c5d.9xlarge", - "m4.4xlarge", - "c4.8xlarge", + "m5.12xlarge", + "c4.large", + "r6g.medium", + "r5.12xlarge", "r5.2xlarge", - "c5.xlarge", - "c5.large", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6g.medium", + "r6g.16xlarge", "r5d.xlarge", - "c5d.18xlarge", - "r5d.16xlarge", - "r5d.12xlarge", - "c4.xlarge", - "r4.2xlarge", - "c5.4xlarge", + "c6g.8xlarge", "c4.2xlarge", - "r5d.large", - "c5.2xlarge", - "m5.16xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "r5d.2xlarge", + "m5.2xlarge", + "r5.16xlarge", + "r5d.4xlarge", + "r4.large", + "m6g.12xlarge", + "c5d.12xlarge", "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5.4xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "c6gn.4xlarge", + "m6g.medium", + "c5d.24xlarge", + "r4.16xlarge", + "c6g.xlarge", "c4.4xlarge", - "r4.4xlarge", - "m5.12xlarge" + "m4.large", + "r5.large", + "m5.large", + "c6i.12xlarge", + "m6g.8xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "ap-south-1": { "enum": [ - "c6a.large", - "c5.12xlarge", - "m5a.large", - "c6a.8xlarge", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m4.2xlarge", + "c5a.16xlarge", "r3.large", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "c6a.12xlarge", "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6a.xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "r3.4xlarge", - "m5a.16xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", + "c6a.8xlarge", + "r3.2xlarge", + "r5.8xlarge", "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.xlarge", "r5d.large", - "m5.16xlarge", - "c6g.16xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r3.8xlarge", "r4.4xlarge", - "m6g.xlarge", - "c6a.16xlarge", - "c5a.8xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "r4.8xlarge", - "m4.2xlarge", - "c6i.12xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "m4.large", - "c6i.24xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", "m5a.12xlarge", - "r6g.16xlarge", + "r6g.xlarge", + "c6a.16xlarge", "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "r5d.xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m5.16xlarge", + "m4.xlarge", "c6a.2xlarge", - "r3.xlarge", - "c5.4xlarge", - "r3.2xlarge", - "c4.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", + "r4.8xlarge", + "c6a.24xlarge", "r5a.16xlarge", - "r4.xlarge", - "r6g.8xlarge", - "c5d.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", "c6i.2xlarge", - "r5a.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "c6a.12xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", - "r4.large", + "r5a.large", + "c5.4xlarge", + "c5.24xlarge", + "c5a.4xlarge", "r6g.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", "r6g.medium", + "c4.large", + "c6a.4xlarge", + "r5.12xlarge", "r5.2xlarge", - "m5a.8xlarge", - "c5.large", "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6a.large", "c6g.medium", - "c6i.16xlarge", - "m6g.12xlarge", - "r6g.12xlarge", - "c6a.24xlarge", - "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", - "r5.4xlarge", + "r6g.16xlarge", "r5a.2xlarge", - "c5a.24xlarge", - "c4.large", + "r5d.xlarge", + "c6g.8xlarge", + "c6a.xlarge", + "c4.2xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "m5a.16xlarge", "m5.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "r4.large", + "m6g.12xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5a.8xlarge", + "r5.4xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "c6gn.4xlarge", "m6g.medium", - "m5.xlarge", - "c6g.large", - "c6a.4xlarge", + "m5a.4xlarge", + "c5d.24xlarge", + "r5a.24xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge", - "r5a.large" + "m5.large", + "m6g.8xlarge", + "c6i.12xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "ap-southeast-1": { "enum": [ - "c5.12xlarge", - "c3.4xlarge", - "m5a.large", - "m5.24xlarge", - "m5.large", - "r3.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "m3.medium", + "c5.xlarge", + "g5g.2xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m4.2xlarge", + "c5a.16xlarge", + "r3.large", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "c6a.12xlarge", "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", + "c6a.8xlarge", + "r3.2xlarge", + "r5.8xlarge", "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.2xlarge", + "r4.xlarge", "r5d.large", - "m5.16xlarge", - "c6g.16xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r3.8xlarge", "r4.4xlarge", + "c6g.large", + "c5.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "c6i.4xlarge", + "g5g.16xlarge", "c3.large", - "c3.2xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "r4.8xlarge", - "m4.2xlarge", - "c6i.12xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "m4.large", - "c6i.24xlarge", "m5a.12xlarge", - "r6g.16xlarge", + "r6g.xlarge", + "c6a.16xlarge", "c4.8xlarge", - "c5.xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "c5d.18xlarge", - "r3.xlarge", - "c5.4xlarge", - "r3.2xlarge", - "c4.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m3.2xlarge", + "m5.16xlarge", + "m4.xlarge", + "c6a.2xlarge", + "r4.8xlarge", + "c6a.24xlarge", "r5a.16xlarge", - "r4.xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "m6g.large", + "r6g.4xlarge", + "m6g.xlarge", "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", - "r4.large", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", + "c5.24xlarge", + "c5a.4xlarge", "r6g.large", - "r5.xlarge", - "m4.4xlarge", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "c7g.medium", + "c7g.2xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", "r6g.medium", + "c6a.4xlarge", + "r5.12xlarge", "r5.2xlarge", - "r5a.8xlarge", - "m5a.8xlarge", - "c5.large", "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", "m3.large", - "m3.medium", - "m6g.12xlarge", - "r6g.12xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "c3.xlarge", - "r5.4xlarge", - "c5a.24xlarge", + "m5.xlarge", + "m5.4xlarge", + "g5g.xlarge", + "c5.2xlarge", + "c6a.large", + "c6g.medium", + "c3.2xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "r6g.16xlarge", "r5a.2xlarge", - "c4.large", + "r5d.xlarge", + "c6g.8xlarge", + "c6a.xlarge", + "c4.2xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "c7g.large", "m5.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "r4.large", + "m6g.12xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5.4xlarge", + "r5a.8xlarge", + "c7g.xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "c7g.8xlarge", + "c6gn.4xlarge", "m6g.medium", - "m5.xlarge", - "c3.8xlarge", - "c6g.large", + "m3.xlarge", + "g5g.8xlarge", + "m5a.4xlarge", + "c5d.24xlarge", + "r5a.24xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge", - "r5a.large" + "m5.large", + "m6g.8xlarge", + "c6i.12xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "g5g.4xlarge" ] }, "ap-southeast-2": { "enum": [ - "c5.12xlarge", - "c3.4xlarge", - "m5a.large", - "m5.24xlarge", - "m5.large", - "r3.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "m3.medium", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "c5a.16xlarge", + "m4.2xlarge", + "r3.large", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "c6a.12xlarge", "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", - "r5d.large", + "c6a.8xlarge", + "r3.2xlarge", + "r5.8xlarge", "m6g.16xlarge", - "c6g.16xlarge", - "m5.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.2xlarge", + "r4.xlarge", + "r5d.large", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r3.8xlarge", "r4.4xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "c6i.4xlarge", "c3.large", - "c3.2xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", + "m5a.12xlarge", + "r6g.xlarge", + "c6a.16xlarge", + "c4.8xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m3.2xlarge", + "m4.xlarge", + "m5.16xlarge", + "c6a.2xlarge", "r4.8xlarge", - "c6i.12xlarge", - "m4.2xlarge", + "c6a.24xlarge", + "r5a.16xlarge", "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", + "c5a.4xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "c7g.medium", + "c7g.2xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "r6g.medium", + "c4.large", + "c6a.4xlarge", "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", + "m3.large", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6a.large", + "c6g.medium", + "c3.2xlarge", + "c7g.16xlarge", + "c7g.12xlarge", "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", + "r5a.2xlarge", "r5d.xlarge", - "r5d.12xlarge", - "c5d.18xlarge", - "r3.xlarge", - "c5.4xlarge", + "c6a.xlarge", + "c6g.8xlarge", "c4.2xlarge", - "r3.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", - "r5a.16xlarge", - "r4.xlarge", - "r6g.8xlarge", - "c5d.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "c7g.large", + "m5.2xlarge", "r5d.2xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", - "r6g.large", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", "r4.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "r6g.medium", - "m5a.8xlarge", - "c5.large", - "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", - "m3.large", - "m3.medium", "m6g.12xlarge", - "r6g.12xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "c3.xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", "r5.4xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "c4.large", - "m5.2xlarge", + "r5a.8xlarge", + "c7g.xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", "m6g.medium", - "m5.xlarge", - "c3.8xlarge", - "c6g.large", + "c6gn.4xlarge", + "c7g.8xlarge", + "m3.xlarge", + "m5a.4xlarge", + "c5d.24xlarge", + "r5a.24xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "r6g.xlarge", - "c5.18xlarge", - "r5a.large" + "m5.large", + "m6g.8xlarge", + "c6i.12xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "ca-central-1": { "enum": [ - "c5.12xlarge", - "m5a.large", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "c5a.16xlarge", + "m4.2xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", "r5a.xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.2xlarge", + "r4.xlarge", + "r5d.large", "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r4.4xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", + "m5a.12xlarge", + "r6g.xlarge", + "c4.8xlarge", "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "r5d.large", - "m6g.16xlarge", + "r5d.24xlarge", "m5.16xlarge", - "c6g.16xlarge", - "r4.4xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", + "m4.xlarge", "r4.8xlarge", - "c6i.12xlarge", - "m4.2xlarge", + "r5a.16xlarge", "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", + "c5a.4xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "c5d.xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", + "r6g.medium", "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6g.medium", "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", + "r5a.2xlarge", "r5d.xlarge", - "c5.4xlarge", + "c6g.8xlarge", "c4.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r5a.16xlarge", - "r4.xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "m5a.16xlarge", "r5d.2xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", + "m5.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", "r4.large", - "r6g.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "r6g.medium", - "m5a.8xlarge", - "c5.large", - "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", "m6g.12xlarge", - "r6g.12xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5a.8xlarge", "r5.4xlarge", - "r5a.2xlarge", - "c5a.24xlarge", - "c4.large", - "m5.2xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "c6gn.4xlarge", "m6g.medium", - "m5.xlarge", - "c6g.large", + "m5a.4xlarge", + "c5d.24xlarge", + "r5a.24xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "c6i.12xlarge", + "m6g.8xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "cn-north-1": { "enum": [ - "r5a.16xlarge", - "r4.xlarge", - "r5.8xlarge", - "c3.2xlarge", - "c5.9xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "c3.xlarge", - "c3.4xlarge", - "m5a.4xlarge", - "m5a.large", + "m4.10xlarge", + "m3.medium", + "c5.xlarge", + "m4.2xlarge", + "r3.large", "r5.24xlarge", - "r5.4xlarge", - "r5a.2xlarge", "m5.24xlarge", - "r5a.4xlarge", - "c4.large", - "m5.2xlarge", - "m5.large", - "m5.xlarge", - "r4.8xlarge", - "c3.8xlarge", - "m4.10xlarge", "r5a.xlarge", - "r3.large", - "m4.2xlarge", + "r3.2xlarge", + "r5.8xlarge", + "r4.xlarge", + "r4.2xlarge", "m5a.24xlarge", - "m5a.2xlarge", - "m5.4xlarge", - "r5.16xlarge", - "r5.12xlarge", - "m5.8xlarge", - "m4.large", - "m4.xlarge", - "r4.large", - "r5.large", + "c5.9xlarge", + "c4.xlarge", + "r3.8xlarge", + "r4.4xlarge", + "c5.large", + "m4.4xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "c6i.4xlarge", + "c3.large", "m5a.12xlarge", - "r5.xlarge", - "m3.2xlarge", - "m5a.xlarge", - "m5a.16xlarge", "c4.8xlarge", - "m4.4xlarge", - "r5.2xlarge", - "r5a.8xlarge", + "m3.2xlarge", + "m5.16xlarge", + "m4.xlarge", + "r4.8xlarge", + "r5a.16xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", + "c6i.large", + "r3.xlarge", "r3.4xlarge", "m5a.8xlarge", - "c5.xlarge", - "c5.large", - "r3.8xlarge", - "c4.xlarge", - "r5a.24xlarge", - "r4.2xlarge", - "r3.xlarge", - "m3.xlarge", - "c5.4xlarge", - "c4.2xlarge", - "r3.2xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", + "r5.12xlarge", + "r5.2xlarge", "m3.large", + "m5.xlarge", + "m5.4xlarge", "c5.2xlarge", - "m5.16xlarge", + "c6i.32xlarge", + "c3.2xlarge", + "r5a.2xlarge", + "c4.2xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "m5.2xlarge", + "r5.16xlarge", + "r4.large", "c5.18xlarge", - "m3.medium", - "r4.4xlarge", + "r5a.12xlarge", + "r5.4xlarge", + "r5a.8xlarge", + "c6i.xlarge", + "m3.xlarge", + "m5a.4xlarge", + "r5a.24xlarge", + "r4.16xlarge", "c4.4xlarge", - "m5.12xlarge", - "c3.large", - "r5a.large" + "m4.large", + "r5.large", + "m5.large", + "c6i.12xlarge", + "c6i.8xlarge", + "r5.xlarge", + "m5.8xlarge" ] }, "cn-northwest-1": { "enum": [ - "r5a.16xlarge", - "r4.xlarge", - "r5.8xlarge", - "c5.12xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "r4.16xlarge", + "m4.10xlarge", "r5a.12xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "m5a.large", - "r5.24xlarge", + "r5a.8xlarge", "r5.4xlarge", - "r5a.2xlarge", - "c5a.24xlarge", - "m5.24xlarge", + "m5a.large", + "m5.12xlarge", + "m5a.12xlarge", "c4.large", - "r5a.4xlarge", - "m5.2xlarge", - "m5.large", - "m4.10xlarge", - "r4.8xlarge", + "r5.12xlarge", + "r5.2xlarge", + "c5.xlarge", + "c6i.xlarge", + "c4.8xlarge", + "m5a.4xlarge", "m5.xlarge", - "r5a.xlarge", - "m4.2xlarge", - "c5a.16xlarge", "m5.4xlarge", - "c5.24xlarge", - "m5a.24xlarge", + "c5.2xlarge", + "m5.16xlarge", + "m4.xlarge", + "r4.8xlarge", + "r5a.24xlarge", + "r5a.16xlarge", + "r4.16xlarge", "m5a.2xlarge", - "r5.16xlarge", + "r5a.4xlarge", + "c5a.24xlarge", + "c6i.32xlarge", + "c5a.16xlarge", + "m4.2xlarge", + "r5.24xlarge", + "c6i.2xlarge", + "m5.24xlarge", + "r5a.xlarge", + "c4.4xlarge", "m4.large", - "r5.12xlarge", - "m5.8xlarge", - "m4.xlarge", - "r4.large", + "r5a.2xlarge", + "r5a.large", + "r5.8xlarge", "r5.large", - "m5a.12xlarge", - "r5.xlarge", - "m5a.xlarge", - "c5a.xlarge", + "m5.large", + "c5.24xlarge", + "c5a.4xlarge", + "c6i.12xlarge", + "c5.4xlarge", + "c6i.large", + "c5.12xlarge", + "c4.2xlarge", + "r4.2xlarge", + "r4.xlarge", + "c5a.large", + "m5a.24xlarge", + "c6i.24xlarge", "m5a.16xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "c4.8xlarge", - "c5a.12xlarge", + "c5.9xlarge", + "c4.xlarge", "m5a.8xlarge", - "c5.xlarge", + "c5a.12xlarge", + "c6i.8xlarge", + "m5.2xlarge", + "r5.xlarge", + "r4.4xlarge", + "r5.16xlarge", + "c5a.8xlarge", "c5.large", - "c4.xlarge", - "r5a.24xlarge", - "r4.2xlarge", - "c5a.large", - "c5.4xlarge", - "c4.2xlarge", - "c5.2xlarge", - "m5.16xlarge", + "r4.large", + "m4.4xlarge", + "c5a.xlarge", + "m5.8xlarge", + "c5a.2xlarge", + "c6i.16xlarge", "c5.18xlarge", - "c4.4xlarge", - "r4.4xlarge", - "m5.12xlarge", - "r5a.large" + "c6i.4xlarge", + "m5a.xlarge" ] }, "eu-central-1": { "enum": [ - "c6a.large", - "c5.12xlarge", - "c3.4xlarge", - "c6a.8xlarge", - "m5a.large", - "m5.24xlarge", - "m5.large", - "r3.large", + "c6gn.8xlarge", "m4.10xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6a.xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", + "r5d.12xlarge", + "m3.medium", + "c5.xlarge", + "g5g.2xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "c5a.16xlarge", + "m4.2xlarge", + "r3.large", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "c6a.8xlarge", + "r3.2xlarge", + "r5.8xlarge", "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.xlarge", "r5d.large", - "m5.16xlarge", - "c6g.16xlarge", + "r4.2xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r3.8xlarge", "r4.4xlarge", + "c6g.large", + "c5.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "c6i.4xlarge", + "g5g.16xlarge", "c3.large", - "c3.2xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "c6a.16xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "r4.8xlarge", - "c6i.12xlarge", - "m4.2xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "m4.large", - "c6i.24xlarge", "m5a.12xlarge", - "r6g.16xlarge", + "r6g.xlarge", + "c6a.16xlarge", "c4.8xlarge", - "c5.xlarge", - "r5d.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m3.2xlarge", + "m4.xlarge", + "m5.16xlarge", "c6a.2xlarge", - "r3.xlarge", - "c5.4xlarge", - "c4.2xlarge", - "r3.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", + "r4.8xlarge", + "c6a.24xlarge", "r5a.16xlarge", - "r4.xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", "c6i.2xlarge", - "r5a.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "c6a.12xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", - "r4.large", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", + "c5.24xlarge", + "c5a.4xlarge", "r6g.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "r6g.medium", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", "m5a.8xlarge", - "c5.large", + "c6gn.12xlarge", + "c5d.4xlarge", + "c7g.medium", + "c7g.2xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", + "r6g.medium", + "c6a.4xlarge", + "r5.12xlarge", + "r5.2xlarge", "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", "m3.large", - "m3.medium", - "m6g.12xlarge", - "r6g.12xlarge", - "c6a.24xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "c3.xlarge", - "r5.4xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "c4.large", - "m5.2xlarge", - "m6g.medium", "m5.xlarge", - "c3.8xlarge", - "c6g.large", - "c6a.4xlarge", - "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "c5a.12xlarge", - "c6i.large", + "m5.4xlarge", + "g5g.xlarge", + "c5.2xlarge", + "c6a.large", + "c6g.medium", + "c3.2xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "r6g.16xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "c6a.xlarge", + "c4.2xlarge", "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" - ] - }, - "eu-north-1": { - "enum": [ - "c5d.xlarge", - "r5.8xlarge", - "c5.12xlarge", - "c5d.2xlarge", - "c5.9xlarge", - "c5a.4xlarge", + "c7g.4xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "c7g.large", + "m5.2xlarge", "r5d.2xlarge", + "r5.16xlarge", "c5a.8xlarge", + "r5d.4xlarge", + "r4.large", + "m6g.12xlarge", + "c5a.xlarge", + "c5d.12xlarge", "c5a.2xlarge", - "r5.24xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5a.8xlarge", "r5.4xlarge", + "c7g.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "m6g.medium", + "c6gn.4xlarge", + "c7g.8xlarge", + "m3.xlarge", + "g5g.8xlarge", + "m5a.4xlarge", "c5d.24xlarge", - "r5d.4xlarge", + "r5a.24xlarge", + "r4.16xlarge", "c5a.24xlarge", - "m5.24xlarge", - "m5.2xlarge", - "m5.large", - "m5.xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "m5.8xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.24xlarge", - "c5d.4xlarge", - "r5d.8xlarge", + "m5.large", + "m6g.8xlarge", + "c6i.12xlarge", + "c6i.8xlarge", "r5.xlarge", - "c5d.9xlarge", - "c5a.xlarge", - "r5.2xlarge", - "c5a.12xlarge", - "c5.xlarge", - "c5.large", - "r5d.xlarge", - "r5d.12xlarge", - "r5d.16xlarge", - "c5d.18xlarge", - "c5a.large", - "c5.4xlarge", - "r5d.large", - "c5.2xlarge", - "m5.16xlarge", - "c5.18xlarge", - "m5.12xlarge" + "c6gn.16xlarge", + "m5.8xlarge", + "g5g.4xlarge" ] }, - "eu-south-1": { + "eu-north-1": { "enum": [ - "c5d.xlarge", + "c6gn.8xlarge", + "r5d.12xlarge", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "c5a.16xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", "c5.12xlarge", - "c5d.2xlarge", + "r5d.large", "c5.9xlarge", - "r5d.2xlarge", - "r5.4xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "m5.24xlarge", - "m5.2xlarge", - "m5.large", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "c6g.large", + "c5.large", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", + "r6g.xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m5.16xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "c5.24xlarge", + "c5a.4xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "c5d.xlarge", + "c5a.large", + "c6gn.12xlarge", + "c5d.4xlarge", + "m5.12xlarge", + "r6g.medium", + "r5.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", "m5.xlarge", - "c5d.large", "m5.4xlarge", - "c5.24xlarge", + "c5.2xlarge", + "c6g.medium", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "m5.2xlarge", + "r5d.2xlarge", "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "m6g.12xlarge", + "c5a.xlarge", "c5d.12xlarge", - "r5.12xlarge", - "m5.8xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5.4xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "m6g.medium", + "c6gn.4xlarge", + "c5d.24xlarge", + "c5a.24xlarge", + "c6g.xlarge", "r5.large", - "r5d.24xlarge", - "c5d.4xlarge", - "r5d.8xlarge", + "m5.large", + "c6i.12xlarge", + "m6g.8xlarge", + "c6i.8xlarge", "r5.xlarge", - "c5d.9xlarge", - "r5.2xlarge", + "c6gn.16xlarge", + "m5.8xlarge" + ] + }, + "eu-south-1": { + "enum": [ + "c6gn.8xlarge", + "r5d.12xlarge", "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r5d.large", + "c5.9xlarge", + "c6gn.large", + "r6g.12xlarge", "c5.large", - "r5d.16xlarge", - "r5d.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", + "c6g.large", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", + "r6g.xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m5.16xlarge", + "m6g.large", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", "c5.4xlarge", - "r5d.large", + "c5.24xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "c5d.xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "m5.12xlarge", + "r6g.medium", + "r5.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", "c5.2xlarge", - "m5.16xlarge", + "c6g.medium", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "r5d.2xlarge", + "m5.2xlarge", + "r5.16xlarge", + "r5d.4xlarge", + "m6g.12xlarge", + "c5d.12xlarge", "c5.18xlarge", - "m5.12xlarge" + "c5d.large", + "c6g.4xlarge", + "r5.4xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "c6gn.4xlarge", + "m6g.medium", + "c5d.24xlarge", + "c6g.xlarge", + "r5.large", + "m5.large", + "c6i.12xlarge", + "m6g.8xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "eu-west-1": { "enum": [ - "c6a.large", - "c5.12xlarge", - "c3.4xlarge", - "m5a.large", - "c6a.8xlarge", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "m3.medium", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r7g.12xlarge", + "c5a.16xlarge", + "m4.2xlarge", "r3.large", + "r7g.16xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6a.12xlarge", + "c6gn.2xlarge", "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6a.xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", - "r5d.large", + "c6a.8xlarge", + "r3.2xlarge", + "r5.8xlarge", "m6g.16xlarge", - "m5.16xlarge", - "c6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.2xlarge", + "r5d.large", + "r4.xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r7g.2xlarge", "r4.4xlarge", + "r3.8xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "c6i.4xlarge", "c3.large", - "c3.2xlarge", - "m6g.xlarge", + "m5a.12xlarge", + "r6g.xlarge", "c6a.16xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", + "c4.8xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m3.2xlarge", + "m5.16xlarge", + "m4.xlarge", + "c6a.2xlarge", "r4.8xlarge", - "m4.2xlarge", - "c6i.12xlarge", + "c6a.24xlarge", + "r5a.16xlarge", "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", + "c5a.4xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "c7g.medium", + "c7g.2xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "r6g.medium", + "c4.large", + "c6a.4xlarge", "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", + "m3.large", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6a.large", + "c6g.medium", + "m7g.12xlarge", + "c3.2xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "m7g.8xlarge", "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", + "r5a.2xlarge", "r5d.xlarge", - "c6a.2xlarge", - "r3.xlarge", - "c5.4xlarge", + "c6a.xlarge", + "c6g.8xlarge", + "m7g.large", + "m7g.medium", "c4.2xlarge", - "r3.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", - "r5a.16xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "r4.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r5a.12xlarge", - "r4.16xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "c7g.large", + "m5.2xlarge", "r5d.2xlarge", - "c6a.12xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", - "r6g.large", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", "r4.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "r6g.medium", - "m5a.8xlarge", - "c5.large", - "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", - "m3.large", - "m3.medium", "m6g.12xlarge", - "r6g.12xlarge", - "c6a.24xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "c3.xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", "r5.4xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "c4.large", - "m5.2xlarge", + "r5a.8xlarge", + "m7g.2xlarge", + "m7g.xlarge", + "c7g.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", "m6g.medium", - "m5.xlarge", - "c3.8xlarge", - "c6g.large", - "c6a.4xlarge", + "r7g.8xlarge", + "c7g.8xlarge", + "m3.xlarge", + "c6gn.4xlarge", + "m5a.4xlarge", + "r7g.xlarge", + "c5d.24xlarge", + "r7g.large", + "r5a.24xlarge", + "m7g.16xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "r7g.medium", + "m6g.8xlarge", + "c6i.12xlarge", + "m7g.4xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "r7g.4xlarge" ] }, "eu-west-2": { "enum": [ - "c5.12xlarge", - "m5a.large", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m4.2xlarge", + "c5a.16xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6a.12xlarge", + "c6gn.2xlarge", "r5a.xlarge", + "c6a.8xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.xlarge", + "r5d.large", + "r4.2xlarge", "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r4.4xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", + "m5a.12xlarge", + "r6g.xlarge", + "c6a.16xlarge", + "c4.8xlarge", "r5d.24xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "r5d.large", - "m6g.16xlarge", + "m4.xlarge", "m5.16xlarge", - "c6g.16xlarge", - "r4.4xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", + "c6a.2xlarge", "r4.8xlarge", - "m4.2xlarge", - "c6i.12xlarge", + "c6a.24xlarge", + "r5a.16xlarge", "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", + "c5a.4xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "c5d.xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "r6g.medium", + "c4.large", + "c6a.4xlarge", "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6g.medium", + "c6a.large", "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", + "r5a.2xlarge", "r5d.xlarge", - "r5d.12xlarge", - "c5.4xlarge", + "c6g.8xlarge", + "c6a.xlarge", "c4.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r5a.16xlarge", - "r4.xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r5a.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "r5d.2xlarge", + "m5.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", "r4.large", - "r6g.large", - "r5.xlarge", - "m4.4xlarge", - "r6g.medium", - "r5.2xlarge", - "r5a.8xlarge", - "m5a.8xlarge", - "c5.large", - "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", "m6g.12xlarge", - "r6g.12xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5a.8xlarge", "r5.4xlarge", - "r5a.2xlarge", - "c5a.24xlarge", - "c4.large", - "m5.2xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "c6gn.4xlarge", "m6g.medium", - "m5.xlarge", - "c6g.large", + "m5a.4xlarge", + "c5d.24xlarge", + "r5a.24xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "m6g.8xlarge", + "c6i.12xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "eu-west-3": { "enum": [ - "r5a.16xlarge", - "c5d.xlarge", - "r4.xlarge", + "c6gn.8xlarge", + "r5d.12xlarge", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "r5a.xlarge", "r5.8xlarge", - "c5d.2xlarge", + "m6g.16xlarge", + "c5d.9xlarge", "c5.12xlarge", - "c6i.2xlarge", + "r4.2xlarge", + "r4.xlarge", + "r5d.large", + "m5a.24xlarge", "c5.9xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "m5a.4xlarge", - "m5a.large", - "r5.4xlarge", - "r5.24xlarge", - "r5d.4xlarge", - "r5a.2xlarge", - "m5.24xlarge", + "c6gn.large", + "r6g.12xlarge", + "r4.4xlarge", + "c6g.large", + "c5.large", + "c6gn.xlarge", + "c6i.16xlarge", "c6i.4xlarge", - "r5a.4xlarge", - "m5.2xlarge", - "m5.large", - "m5.xlarge", + "m5a.12xlarge", + "r6g.xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m5.16xlarge", "r4.8xlarge", - "r5a.xlarge", - "c5d.large", - "m5a.24xlarge", - "c6i.12xlarge", - "c5.24xlarge", - "m5.4xlarge", - "r5.16xlarge", + "r5a.16xlarge", "m5a.2xlarge", - "r5.12xlarge", - "m5.8xlarge", - "c6i.xlarge", - "r4.large", - "r5.large", - "r5d.24xlarge", - "c6i.24xlarge", - "m5a.12xlarge", + "r5a.4xlarge", + "m6g.large", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", + "c5.24xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "c5d.xlarge", + "m5a.8xlarge", + "c6gn.12xlarge", "c5d.4xlarge", - "r5d.8xlarge", - "r5.xlarge", - "c5d.9xlarge", "m5a.xlarge", - "m5a.16xlarge", - "r5a.8xlarge", + "m5a.large", + "m5.12xlarge", + "r6g.medium", + "r5.12xlarge", "r5.2xlarge", - "m5a.8xlarge", - "c6i.large", - "c5.xlarge", - "c5.large", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6g.medium", + "r6g.16xlarge", + "r5a.2xlarge", "r5d.xlarge", - "c5d.18xlarge", + "c6g.8xlarge", "r5d.16xlarge", - "r5d.12xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "m5.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "r5d.4xlarge", + "r4.large", + "m6g.12xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5.4xlarge", + "r5a.8xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "m6g.medium", + "c6gn.4xlarge", + "m5a.4xlarge", "r5a.24xlarge", - "r4.2xlarge", - "c5.4xlarge", - "c6i.16xlarge", - "r5d.large", - "c5.2xlarge", + "r4.16xlarge", + "c6g.xlarge", + "r5.large", + "m5.large", + "m6g.8xlarge", + "c6i.12xlarge", "c6i.8xlarge", - "m5.16xlarge", - "c5.18xlarge", - "r4.4xlarge", - "m5.12xlarge", - "r5a.large" + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "me-south-1": { "enum": [ - "c5d.xlarge", - "r5.8xlarge", - "c5.12xlarge", - "c5d.2xlarge", - "c5.9xlarge", - "r5d.2xlarge", + "c6gn.8xlarge", + "r5d.12xlarge", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", "r5.24xlarge", - "r5.4xlarge", - "c5d.24xlarge", - "r5d.4xlarge", "m5.24xlarge", - "m5.2xlarge", - "m5.large", - "m5.xlarge", - "c5d.large", - "m5.4xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "m5.8xlarge", - "r5.large", - "r5d.24xlarge", - "c5d.4xlarge", - "r5d.8xlarge", - "r5.xlarge", + "c6gn.2xlarge", + "r5.8xlarge", + "m6g.16xlarge", "c5d.9xlarge", - "r5.2xlarge", - "c5.xlarge", - "c5.large", - "c5d.18xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r5d.16xlarge", - "c5.4xlarge", + "c5.12xlarge", "r5d.large", - "c5.2xlarge", + "c5.9xlarge", + "c6gn.large", + "r6g.12xlarge", + "c5.large", + "c6g.large", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", + "r6g.xlarge", + "r6g.2xlarge", + "r5d.24xlarge", "m5.16xlarge", - "c5.18xlarge", - "m5.12xlarge" + "m6g.large", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "c5.4xlarge", + "c5.24xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "c5d.xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "m5.12xlarge", + "r6g.medium", + "r5.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6g.medium", + "r6g.16xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "r5d.2xlarge", + "m5.2xlarge", + "r5.16xlarge", + "r5d.4xlarge", + "m6g.12xlarge", + "c5d.12xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5.4xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "m6g.medium", + "c6gn.4xlarge", + "c5d.24xlarge", + "c6g.xlarge", + "r5.large", + "m5.large", + "m6g.8xlarge", + "c6i.12xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "sa-east-1": { "enum": [ - "c3.4xlarge", - "m5a.large", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "m3.medium", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m4.2xlarge", + "c5a.16xlarge", "r3.large", + "r5.24xlarge", + "m5.24xlarge", + "c6a.12xlarge", + "c6gn.2xlarge", "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", - "r5d.large", + "c6a.8xlarge", + "r3.2xlarge", + "r5.8xlarge", "m6g.16xlarge", - "m5.16xlarge", - "c6g.16xlarge", + "c5d.9xlarge", + "r4.2xlarge", + "r5d.large", + "r4.xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r3.8xlarge", "r4.4xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "c6i.4xlarge", "c3.large", - "c3.2xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "r4.8xlarge", - "m4.2xlarge", - "c6i.12xlarge", - "m5a.2xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", - "r5.12xlarge", - "c6i.24xlarge", "m5a.12xlarge", - "r6g.16xlarge", + "r6g.xlarge", + "c6a.16xlarge", "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "r3.xlarge", - "c5.4xlarge", - "r3.2xlarge", - "c4.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m3.2xlarge", + "m5.16xlarge", + "m4.xlarge", + "c6a.2xlarge", + "r4.8xlarge", + "c6a.24xlarge", "r5a.16xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "r4.xlarge", - "c5d.2xlarge", - "c6g.12xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", + "c5a.4xlarge", "r6g.large", - "r4.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "r6g.medium", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", "m5a.8xlarge", - "c5.large", + "c6gn.12xlarge", + "c5d.4xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", + "r6g.medium", + "c6a.4xlarge", + "r5.12xlarge", + "r5.2xlarge", "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", "m3.large", - "m3.medium", - "m6g.12xlarge", - "r6g.12xlarge", - "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", - "c3.xlarge", - "r5.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6a.large", + "c6g.medium", + "c3.2xlarge", + "r6g.16xlarge", "r5a.2xlarge", - "c5a.24xlarge", - "c4.large", + "r5d.xlarge", + "c6a.xlarge", + "c6g.8xlarge", + "c4.2xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "m5a.16xlarge", "m5.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "r4.large", + "m6g.12xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5a.8xlarge", + "r5.4xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", "m6g.medium", - "c3.8xlarge", - "m5.xlarge", - "c6g.large", + "c6gn.4xlarge", + "m3.xlarge", + "m5a.4xlarge", + "c5d.24xlarge", + "r5a.24xlarge", + "r4.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "c6i.12xlarge", + "m6g.8xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "us-east-1": { "enum": [ - "c6a.large", - "c5.12xlarge", - "c3.4xlarge", - "m5a.large", - "c6a.8xlarge", - "m5.24xlarge", - "m5.large", - "r3.large", + "c6gn.8xlarge", "m4.10xlarge", - "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6a.xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", - "r5d.large", - "m6g.16xlarge", - "m5.16xlarge", + "r5d.12xlarge", + "m3.medium", + "c5.xlarge", + "g5g.2xlarge", + "c6g.2xlarge", + "c6gn.medium", "c6g.16xlarge", - "r4.4xlarge", - "c3.large", - "c3.2xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "c6a.16xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "r4.8xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r7g.12xlarge", + "c5a.16xlarge", "m4.2xlarge", - "c6i.12xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", - "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "c6a.2xlarge", - "r3.xlarge", - "c5.4xlarge", - "c4.2xlarge", + "r3.large", + "r7g.16xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "c6a.12xlarge", + "r5a.xlarge", + "c6a.8xlarge", "r3.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", - "r5a.16xlarge", - "c5d.xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.2xlarge", "r4.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "c6a.12xlarge", + "r5d.large", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r3.8xlarge", + "r4.4xlarge", + "r7g.2xlarge", + "c6g.large", + "c5.large", + "c6gn.xlarge", + "m4.4xlarge", + "c6i.16xlarge", + "c3.4xlarge", "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", + "g5g.16xlarge", + "c3.large", + "m5a.12xlarge", + "r6g.xlarge", + "c6a.16xlarge", + "c4.8xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m3.2xlarge", + "m5.16xlarge", "m4.xlarge", - "m5.8xlarge", - "r4.large", + "c6a.2xlarge", + "r4.8xlarge", + "c6a.24xlarge", + "r5a.16xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "m6g.large", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", + "c5.24xlarge", + "c5a.4xlarge", "r6g.large", - "r5.xlarge", - "m4.4xlarge", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "c7g.medium", + "c7g.2xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", "r6g.medium", + "c4.large", + "c6a.4xlarge", + "r5.12xlarge", "r5.2xlarge", - "r5a.8xlarge", - "m5a.8xlarge", - "c5.large", "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", "m3.large", - "m3.medium", - "m6g.12xlarge", - "r6g.12xlarge", - "c6a.24xlarge", - "r5.8xlarge", - "c5a.4xlarge", - "c5.9xlarge", - "c3.xlarge", - "r5.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "g5g.xlarge", + "c5.2xlarge", + "c6g.medium", + "c6a.large", + "m7g.12xlarge", + "c3.2xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "r6g.16xlarge", "r5a.2xlarge", - "c5a.24xlarge", - "c4.large", + "r5d.xlarge", + "c6a.xlarge", + "c6g.8xlarge", + "m7g.large", + "m7g.medium", + "c4.2xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "c7g.large", "m5.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "r4.large", + "m6g.12xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5a.8xlarge", + "m7g.2xlarge", + "m7g.xlarge", + "r5.4xlarge", + "c7g.xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "c6gn.4xlarge", + "r7g.8xlarge", "m6g.medium", - "m5.xlarge", - "c3.8xlarge", - "c6g.large", - "c6a.4xlarge", + "g5g.8xlarge", + "m3.xlarge", + "c7g.8xlarge", + "m5a.4xlarge", + "r7g.xlarge", + "c5d.24xlarge", + "r7g.large", + "r5a.24xlarge", + "r4.16xlarge", + "m7g.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "r7g.medium", + "m6g.8xlarge", + "c6i.12xlarge", + "m7g.4xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "r7g.4xlarge", + "g5g.4xlarge" ] }, "us-east-2": { "enum": [ - "c6a.large", - "c5.12xlarge", - "m5a.large", - "c6a.8xlarge", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r7g.12xlarge", + "c5a.16xlarge", + "m4.2xlarge", + "r7g.16xlarge", + "r5.24xlarge", + "m5.24xlarge", + "c6gn.2xlarge", + "c6a.12xlarge", "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6a.xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "r5d.large", + "c6a.8xlarge", + "r5.8xlarge", "m6g.16xlarge", - "m5.16xlarge", - "c6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.2xlarge", + "r5d.large", + "r4.xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r7g.2xlarge", "r4.4xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "c6a.16xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", - "r4.8xlarge", - "c6i.12xlarge", - "m4.2xlarge", - "m5a.2xlarge", - "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "r5.12xlarge", - "m4.large", - "c6i.24xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c6i.4xlarge", "m5a.12xlarge", - "r6g.16xlarge", + "r6g.xlarge", + "c6a.16xlarge", "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", - "r5d.12xlarge", - "r5d.xlarge", + "r5d.24xlarge", + "r6g.2xlarge", + "m5.16xlarge", + "m4.xlarge", "c6a.2xlarge", - "c5.4xlarge", - "c4.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", + "r4.8xlarge", + "c6a.24xlarge", "r5a.16xlarge", - "r4.xlarge", - "c5d.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", + "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", "c6i.2xlarge", - "r5a.12xlarge", - "r4.16xlarge", - "r5d.2xlarge", - "c6a.12xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", - "r4.large", + "r5a.large", + "c5.4xlarge", + "c5.24xlarge", + "c5a.4xlarge", "r6g.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "r6g.medium", + "c6i.large", + "c5d.2xlarge", + "c5d.xlarge", + "c5a.large", "m5a.8xlarge", - "c5.large", + "c6gn.12xlarge", + "c5d.4xlarge", + "c7g.medium", + "c7g.2xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", + "r6g.medium", + "c6a.4xlarge", + "r5.12xlarge", + "r5.2xlarge", "m6g.4xlarge", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", "c6g.medium", - "c6i.16xlarge", - "m6g.12xlarge", - "r6g.12xlarge", - "c6a.24xlarge", - "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", - "r5.4xlarge", + "c6a.large", + "m7g.12xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "m7g.8xlarge", + "r6g.16xlarge", "r5a.2xlarge", - "c5a.24xlarge", - "c4.large", + "m7g.large", + "c6a.xlarge", + "c6g.8xlarge", + "r5d.xlarge", + "m7g.medium", + "c4.2xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "c7g.large", "m5.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "r4.large", + "m6g.12xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", + "r5.4xlarge", + "m7g.2xlarge", + "r5a.8xlarge", + "m7g.xlarge", + "c7g.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "c6gn.4xlarge", "m6g.medium", - "m5.xlarge", - "c6g.large", - "c6a.4xlarge", + "r7g.8xlarge", + "c7g.8xlarge", + "m5a.4xlarge", + "r7g.xlarge", + "c5d.24xlarge", + "r7g.large", + "r5a.24xlarge", + "r4.16xlarge", + "m7g.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "r7g.medium", + "c6i.12xlarge", + "m6g.8xlarge", + "m7g.4xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "r7g.4xlarge" ] }, "us-west-1": { "enum": [ - "c5.12xlarge", - "c3.4xlarge", - "m5a.large", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "m3.medium", + "c5.xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "m4.2xlarge", + "c5a.16xlarge", "r3.large", + "r5.24xlarge", + "m5.24xlarge", + "c6a.12xlarge", + "c6gn.2xlarge", "r5a.xlarge", + "c6a.8xlarge", + "r3.2xlarge", + "r5.8xlarge", + "m6g.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.xlarge", + "r5d.large", + "r4.2xlarge", "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r3.8xlarge", + "r4.4xlarge", + "c6g.large", + "c5.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "c6i.4xlarge", + "c3.large", + "m5a.12xlarge", + "r6g.xlarge", + "c6a.16xlarge", + "c4.8xlarge", "r5d.24xlarge", - "c5d.4xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", - "r5d.large", - "m6g.16xlarge", - "c6g.16xlarge", + "m3.2xlarge", "m5.16xlarge", - "r4.4xlarge", - "c3.large", - "c3.2xlarge", - "m6g.xlarge", - "c5a.8xlarge", - "c5a.2xlarge", - "m5a.4xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", + "m4.xlarge", + "c6a.2xlarge", "r4.8xlarge", - "m4.2xlarge", - "c6i.12xlarge", + "c6a.24xlarge", + "r5a.16xlarge", "m5a.2xlarge", + "r5a.4xlarge", + "r6g.4xlarge", + "m6g.large", + "m6g.xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", - "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", - "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "r5d.xlarge", - "r5d.12xlarge", - "c5d.18xlarge", + "c5a.4xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", "r3.xlarge", - "c5.4xlarge", - "r3.2xlarge", - "c4.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", - "r5a.16xlarge", "c5d.xlarge", - "r4.xlarge", - "r6g.8xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", - "r5d.2xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", - "r4.large", - "r6g.large", - "r5.xlarge", - "m4.4xlarge", + "r3.4xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", "r6g.medium", + "c6a.4xlarge", + "r5.12xlarge", "r5.2xlarge", - "r5a.8xlarge", - "m5a.8xlarge", - "c5.large", "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", "m3.large", - "m3.medium", + "m5.xlarge", + "m5.4xlarge", + "c5.2xlarge", + "c6a.large", + "c6g.medium", + "c3.2xlarge", + "r6g.16xlarge", + "r5a.2xlarge", + "r5d.xlarge", + "c6g.8xlarge", + "c6a.xlarge", + "c4.2xlarge", + "r5d.16xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "m5.2xlarge", + "r5d.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", + "r4.large", "m6g.12xlarge", - "r6g.12xlarge", - "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", - "c3.xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", "r5.4xlarge", + "r5a.8xlarge", + "r6g.8xlarge", + "c5d.18xlarge", + "c6i.xlarge", + "m6g.medium", + "c6gn.4xlarge", + "m3.xlarge", + "m5a.4xlarge", + "c5d.24xlarge", + "r5a.24xlarge", + "r4.16xlarge", "c5a.24xlarge", - "r5a.2xlarge", - "c4.large", - "m5.2xlarge", - "m6g.medium", - "c3.8xlarge", - "m5.xlarge", - "c6g.large", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "c6i.12xlarge", + "m6g.8xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge" ] }, "us-west-2": { "enum": [ - "c6a.large", - "c5.12xlarge", - "c3.4xlarge", - "m5a.large", - "c6a.8xlarge", - "m5.24xlarge", - "m5.large", + "c6gn.8xlarge", "m4.10xlarge", + "r5d.12xlarge", + "m3.medium", + "c5.xlarge", + "g5g.2xlarge", + "c6g.2xlarge", + "c6gn.medium", + "c6g.16xlarge", + "c6g.12xlarge", + "r5d.8xlarge", + "m6g.2xlarge", + "r7g.12xlarge", + "c5a.16xlarge", + "m4.2xlarge", + "r7g.16xlarge", "r3.large", + "r5.24xlarge", + "m5.24xlarge", + "c6a.12xlarge", + "c6gn.2xlarge", "r5a.xlarge", - "m5a.24xlarge", - "m6g.large", - "c6i.xlarge", - "r5d.24xlarge", - "c5d.4xlarge", - "c6a.xlarge", - "c6g.xlarge", - "m5a.xlarge", - "c5a.xlarge", - "m5a.16xlarge", - "r3.4xlarge", - "r6g.2xlarge", - "r5a.24xlarge", - "c6g.8xlarge", - "m3.xlarge", - "r5d.large", + "c6a.8xlarge", + "r3.2xlarge", + "r5.8xlarge", "m6g.16xlarge", - "c6g.16xlarge", - "m5.16xlarge", + "c5d.9xlarge", + "c5.12xlarge", + "r4.2xlarge", + "r5d.large", + "r4.xlarge", + "m5a.24xlarge", + "c5.9xlarge", + "c4.xlarge", + "c5a.12xlarge", + "c6gn.large", + "r6g.12xlarge", + "r7g.2xlarge", "r4.4xlarge", + "r3.8xlarge", + "c5.large", + "c6g.large", + "m4.4xlarge", + "c6gn.xlarge", + "c6i.16xlarge", + "c3.4xlarge", + "c6i.4xlarge", + "g5g.16xlarge", "c3.large", - "c3.2xlarge", - "m6g.xlarge", + "m5a.12xlarge", + "r6g.xlarge", "c6a.16xlarge", - "c5a.8xlarge", - "m5a.4xlarge", - "c5a.2xlarge", - "r5.24xlarge", - "c5d.24xlarge", - "r5d.4xlarge", - "r5a.4xlarge", - "m6g.8xlarge", + "c4.8xlarge", + "r6g.2xlarge", + "r5d.24xlarge", + "m3.2xlarge", + "m4.xlarge", + "m5.16xlarge", + "c6a.2xlarge", "r4.8xlarge", - "m4.2xlarge", - "c6i.12xlarge", + "c6a.24xlarge", + "r5a.16xlarge", "m5a.2xlarge", + "r5a.4xlarge", + "m6g.large", + "r6g.4xlarge", + "m6g.xlarge", + "c6i.2xlarge", + "r5a.large", + "c5.4xlarge", + "c3.xlarge", "c5.24xlarge", - "r5.16xlarge", - "c5d.12xlarge", - "m4.large", + "c5a.4xlarge", + "r6g.large", + "c6i.large", + "c5d.2xlarge", + "r3.xlarge", + "c5d.xlarge", + "r3.4xlarge", + "c5a.large", + "m5a.8xlarge", + "c6gn.12xlarge", + "c5d.4xlarge", + "c7g.medium", + "c7g.2xlarge", + "c3.8xlarge", + "m5a.xlarge", + "m5a.large", + "m5.12xlarge", + "c4.large", + "r6g.medium", + "c6a.4xlarge", "r5.12xlarge", - "c6i.24xlarge", - "m5a.12xlarge", + "r5.2xlarge", + "m6g.4xlarge", + "m3.large", + "m5.xlarge", + "m5.4xlarge", + "g5g.xlarge", + "c5.2xlarge", + "c6a.large", + "c6g.medium", + "m7g.12xlarge", + "c3.2xlarge", + "c7g.16xlarge", + "c7g.12xlarge", + "m7g.8xlarge", "r6g.16xlarge", - "c4.8xlarge", - "c5.xlarge", - "c5d.18xlarge", + "r5a.2xlarge", "r5d.xlarge", - "r5d.12xlarge", - "c6a.2xlarge", - "r3.xlarge", - "c5.4xlarge", - "r3.2xlarge", + "c6a.xlarge", + "c6g.8xlarge", + "m7g.large", + "m7g.medium", "c4.2xlarge", - "c5.2xlarge", - "c6i.8xlarge", - "c4.4xlarge", - "m5.12xlarge", - "r3.8xlarge", - "r6g.8xlarge", - "c5d.xlarge", - "r4.xlarge", - "r5a.16xlarge", - "c5d.2xlarge", - "c6g.12xlarge", - "c6i.2xlarge", - "r4.16xlarge", - "r5a.12xlarge", + "r5d.16xlarge", + "c7g.4xlarge", + "c6i.24xlarge", + "m5a.16xlarge", + "c7g.large", "r5d.2xlarge", - "c6a.12xlarge", - "c6i.4xlarge", - "m6g.2xlarge", - "c5d.large", - "c5a.16xlarge", - "m5.4xlarge", - "m4.xlarge", - "m5.8xlarge", + "m5.2xlarge", + "r5.16xlarge", + "c5a.8xlarge", + "r5d.4xlarge", "r4.large", - "r6g.large", - "r5.xlarge", - "m4.4xlarge", - "r5a.8xlarge", - "r5.2xlarge", - "r6g.medium", - "m5a.8xlarge", - "c5.large", - "m6g.4xlarge", - "c6g.medium", - "c6i.16xlarge", - "m3.large", - "m3.medium", "m6g.12xlarge", - "r6g.12xlarge", - "c6a.24xlarge", - "r5.8xlarge", - "c5.9xlarge", - "c5a.4xlarge", - "c3.xlarge", + "c5a.xlarge", + "c5d.12xlarge", + "c5a.2xlarge", + "c5.18xlarge", + "c5d.large", + "c6g.4xlarge", + "r5a.12xlarge", "r5.4xlarge", - "c5a.24xlarge", - "r5a.2xlarge", - "c4.large", - "m5.2xlarge", + "r5a.8xlarge", + "m7g.2xlarge", + "m7g.xlarge", + "c7g.xlarge", + "c5d.18xlarge", + "r6g.8xlarge", + "c6i.xlarge", + "c7g.8xlarge", + "c6gn.4xlarge", + "r7g.8xlarge", "m6g.medium", - "c3.8xlarge", - "m5.xlarge", - "c6g.large", - "c6a.4xlarge", + "g5g.8xlarge", + "m3.xlarge", + "m5a.4xlarge", + "r7g.xlarge", + "c5d.24xlarge", + "r7g.large", + "r5a.24xlarge", + "r4.16xlarge", + "m7g.16xlarge", + "c5a.24xlarge", + "c6g.xlarge", + "c4.4xlarge", + "m4.large", "r5.large", - "r5d.8xlarge", - "c5d.9xlarge", - "m3.2xlarge", - "c5a.12xlarge", - "c6i.large", - "r5d.16xlarge", - "r6g.4xlarge", - "c4.xlarge", - "r4.2xlarge", - "c6g.4xlarge", - "c5a.large", - "c6g.2xlarge", - "c5.18xlarge", - "r6g.xlarge", - "r5a.large" + "m5.large", + "r7g.medium", + "m6g.8xlarge", + "c6i.12xlarge", + "m7g.4xlarge", + "c6i.8xlarge", + "r5.xlarge", + "c6gn.16xlarge", + "m5.8xlarge", + "r7g.4xlarge", + "g5g.4xlarge" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_managedblockchain_node/nodeconfiguration_instancetype_enum.json b/src/cfnlint/data/schemas/extensions/aws_managedblockchain_node/nodeconfiguration_instancetype_enum.json index 6c2b2c68ad..7ebdbd4d0b 100644 --- a/src/cfnlint/data/schemas/extensions/aws_managedblockchain_node/nodeconfiguration_instancetype_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_managedblockchain_node/nodeconfiguration_instancetype_enum.json @@ -2,114 +2,114 @@ "_description": "Automatically updated using update_specs_from_pricing", "ap-northeast-1": { "enum": [ - "bc.t3.small", - "bc.t3.large", - "bc.c5.4xlarge", - "bc.m5.2xlarge", - "bc.t3.medium", + "bc.c5.2xlarge", "bc.m5.large", + "bc.m5.2xlarge", + "bc.c5.xlarge", "bc.m5.xlarge", + "bc.t3.xlarge", + "bc.c5.4xlarge", + "bc.t3.medium", + "bc.t3.small", "bc.m5.4xlarge", "bc.c5.large", - "bc.c5.2xlarge", - "bc.t3.xlarge", - "bc.c5.xlarge" + "bc.t3.large" ] }, "ap-northeast-2": { "enum": [ - "bc.t3.small", - "bc.c5.4xlarge", - "bc.t3.large", + "bc.c5.2xlarge", + "bc.m5.large", "bc.m5.2xlarge", - "bc.t3.medium", + "bc.c5.xlarge", "bc.m5.xlarge", - "bc.m5.large", - "bc.m5.4xlarge", - "bc.c5.2xlarge", "bc.t3.xlarge", + "bc.c5.4xlarge", + "bc.t3.medium", + "bc.t3.small", + "bc.m5.4xlarge", "bc.c5.large", - "bc.c5.xlarge" + "bc.t3.large" ] }, "ap-southeast-1": { "enum": [ - "bc.t3.small", - "bc.t3.large", - "bc.t3.medium", - "bc.m5.2xlarge", - "bc.c5.4xlarge", + "bc.c5.2xlarge", "bc.m5.large", + "bc.m5.2xlarge", + "bc.c5.xlarge", "bc.m5.xlarge", + "bc.t3.xlarge", + "bc.t3.medium", + "bc.c5.4xlarge", + "bc.t3.small", "bc.m5.4xlarge", - "bc.c5.2xlarge", "bc.c5.large", - "bc.t3.xlarge", - "bc.c5.xlarge" + "bc.t3.large" ] }, "eu-west-1": { "enum": [ - "bc.t3.small", - "bc.c5.4xlarge", - "bc.t3.medium", - "bc.t3.large", - "bc.m5.2xlarge", + "bc.c5.2xlarge", "bc.m5.large", + "bc.m5.2xlarge", + "bc.c5.xlarge", "bc.m5.xlarge", - "bc.m5.4xlarge", - "bc.c5.2xlarge", "bc.t3.xlarge", + "bc.c5.4xlarge", + "bc.t3.medium", + "bc.t3.small", + "bc.m5.4xlarge", "bc.c5.large", - "bc.c5.xlarge" + "bc.t3.large" ] }, "eu-west-2": { "enum": [ - "bc.t3.small", - "bc.t3.large", - "bc.t3.medium", - "bc.c5.4xlarge", - "bc.m5.2xlarge", + "bc.c5.2xlarge", "bc.m5.large", + "bc.m5.2xlarge", + "bc.c5.xlarge", + "bc.t3.xlarge", "bc.m5.xlarge", + "bc.t3.medium", + "bc.c5.4xlarge", + "bc.t3.small", "bc.m5.4xlarge", - "bc.t3.xlarge", - "bc.c5.2xlarge", "bc.c5.large", - "bc.c5.xlarge" + "bc.t3.large" ] }, "us-east-1": { "enum": [ - "bc.t3.small", - "bc.c5.4xlarge", - "bc.t3.medium", + "bc.c5.2xlarge", + "bc.m5.large", "bc.m5.2xlarge", - "bc.t3.large", + "bc.c5.xlarge", "bc.m5.xlarge", - "bc.m5.large", + "bc.t3.xlarge", + "bc.c5.4xlarge", + "bc.t3.medium", + "bc.t3.small", "bc.m5.4xlarge", - "bc.c5.2xlarge", "bc.c5.large", - "bc.t3.xlarge", - "bc.c5.xlarge" + "bc.t3.large" ] }, "us-gov-west-1": { "enum": [ - "bc.t3.small", - "bc.t3.large", - "bc.t3.medium", - "bc.m5.2xlarge", - "bc.c5.4xlarge", + "bc.c5.2xlarge", "bc.m5.large", + "bc.m5.2xlarge", + "bc.c5.xlarge", + "bc.t3.xlarge", "bc.m5.xlarge", + "bc.t3.medium", + "bc.c5.4xlarge", + "bc.t3.small", "bc.m5.4xlarge", "bc.c5.large", - "bc.t3.xlarge", - "bc.c5.2xlarge", - "bc.c5.xlarge" + "bc.t3.large" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_neptune_dbinstance/dbinstanceclass_enum.json b/src/cfnlint/data/schemas/extensions/aws_neptune_dbinstance/dbinstanceclass_enum.json index f24e39d51a..ff77d44f06 100644 --- a/src/cfnlint/data/schemas/extensions/aws_neptune_dbinstance/dbinstanceclass_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_neptune_dbinstance/dbinstanceclass_enum.json @@ -2,945 +2,1078 @@ "_description": "Automatically updated using update_specs_from_pricing", "af-south-1": { "enum": [ - "db.r5d.2xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.large", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", "db.r6i.16xlarge", - "db.r6i.2xlarge", + "db.r5.12xlarge", + "db.r6i.xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r5d.4xlarge", + "db.r5d.2xlarge", + "db.r5d.large", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge" + "db.t3.medium" ] }, "ap-east-1": { "enum": [ - "db.r5d.2xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.r6g.large", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.r5d.large", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r6i.2xlarge", + "db.r5.12xlarge", + "db.r6i.xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.8xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.t3.medium" ] }, "ap-northeast-1": { "enum": [ - "db.r5d.2xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r4.8xlarge", + "db.r4.4xlarge", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.large", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r4.large", - "db.r4.8xlarge", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", "db.r5.12xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.r4.2xlarge", - "db.r5.16xlarge", "db.r6i.xlarge", - "db.r4.4xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r4.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "ap-northeast-2": { "enum": [ - "db.r5d.2xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r4.8xlarge", + "db.r4.4xlarge", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.large", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.2xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r4.8xlarge", - "db.r4.large", - "db.r5d.16xlarge", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", "db.r5.12xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r5.24xlarge", - "db.r6g.8xlarge", - "db.r4.2xlarge", - "db.r5.16xlarge", "db.r6i.xlarge", - "db.r4.4xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r4.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "ap-south-1": { "enum": [ + "db.r6gd.large", + "db.r6gd.16xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.r6g.large", + "db.r4.8xlarge", + "db.r6gd.12xlarge", + "db.r5d.16xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r5d.large", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r4.large", - "db.r4.8xlarge", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", "db.r5.12xlarge", + "db.r6gd.xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.r4.2xlarge", - "db.r5.16xlarge", "db.r6i.xlarge", - "db.r4.4xlarge", + "db.r6gd.2xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r4.2xlarge", + "db.r6gd.4xlarge", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "ap-southeast-1": { "enum": [ - "db.r5d.2xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.r6g.large", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r5d.large", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r4.8xlarge", - "db.r4.large", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", "db.r5.12xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r5.24xlarge", - "db.r6g.8xlarge", - "db.r4.2xlarge", - "db.r5.16xlarge", "db.r6i.xlarge", - "db.r4.4xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r4.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "ap-southeast-2": { "enum": [ - "db.r5d.2xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.r6g.large", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.r5d.large", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r4.8xlarge", - "db.r4.large", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", "db.r5.12xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.r4.2xlarge", - "db.r5.16xlarge", "db.r6i.xlarge", - "db.r4.4xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r4.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "ca-central-1": { "enum": [ + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r5d.large", - "db.r6g.2xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r6i.2xlarge", + "db.r5.12xlarge", + "db.r6i.xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", "db.r5.24xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.t3.medium" ] }, "cn-north-1": { "enum": [ - "db.r5d.2xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.large", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r6i.2xlarge", + "db.r5.12xlarge", + "db.r6i.xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", "db.r5.24xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.t3.medium" ] }, "cn-northwest-1": { "enum": [ + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.r5d.large", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.2xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r6i.2xlarge", + "db.r5.12xlarge", + "db.r6i.xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", "db.r5.24xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.t3.medium" ] }, "eu-central-1": { "enum": [ + "db.r5d.xlarge", + "db.r5.large", + "db.r6g.large", + "db.r4.8xlarge", + "db.r4.4xlarge", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.r5d.large", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.2xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r4.large", - "db.r4.8xlarge", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", "db.r5.12xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.r4.2xlarge", - "db.r5.16xlarge", "db.r6i.xlarge", - "db.r4.4xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r4.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "eu-north-1": { "enum": [ - "db.r5d.2xlarge", + "db.r6gd.large", + "db.r6gd.16xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r6gd.12xlarge", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r5d.large", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", "db.r5.12xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.r5.16xlarge", + "db.r6gd.2xlarge", "db.r6i.xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" - ] - }, - "eu-west-1": { - "enum": [ - "db.r5d.2xlarge", - "db.r5.2xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r5.24xlarge", "db.r6g.2xlarge", - "db.r5d.large", - "db.r5.xlarge", "db.r6g.4xlarge", - "db.x2g.2xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", + "db.r5d.2xlarge", + "db.r6gd.4xlarge", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", "db.r5d.12xlarge", - "db.x2g.4xlarge", - "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", "db.r5.8xlarge", - "db.r6i.large", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.t3.medium" + ] + }, + "eu-west-1": { + "enum": [ + "db.x2iedn.4xlarge", + "db.r5.large", "db.r5d.xlarge", + "db.r6g.large", "db.x2g.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r6i.16xlarge", - "db.r6g.16xlarge", "db.r4.8xlarge", "db.r5d.16xlarge", - "db.r4.large", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", + "db.x2iedn.xlarge", + "db.r5.2xlarge", + "db.r5.4xlarge", + "db.x2g.4xlarge", + "db.x2g.16xlarge", + "db.r5.xlarge", + "db.x2g.large", + "db.r6i.large", + "db.r6i.4xlarge", + "db.r6i.16xlarge", + "db.x2iedn.24xlarge", "db.r5.12xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.x2g.8xlarge", - "db.r4.2xlarge", - "db.x2g.large", - "db.x2g.xlarge", "db.r6i.xlarge", - "db.r5.16xlarge", - "db.r4.4xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.x2g.8xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.x2iedn.2xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.x2g.xlarge", + "db.r5d.2xlarge", + "db.r4.2xlarge", + "db.r5d.large", "db.r6g.xlarge", - "db.x2g.16xlarge" + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.x2g.2xlarge", + "db.x2iedn.16xlarge", + "db.x2iedn.8xlarge", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "eu-west-2": { "enum": [ + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r4.8xlarge", + "db.r4.4xlarge", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r5d.large", - "db.r6g.2xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r4.large", - "db.r4.8xlarge", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", "db.r5.12xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.r4.2xlarge", - "db.r5.16xlarge", "db.r6i.xlarge", - "db.r4.4xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r4.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "eu-west-3": { "enum": [ + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.2xlarge", - "db.r5d.large", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r6i.2xlarge", + "db.r5.12xlarge", + "db.r6i.xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.8xlarge", + "db.t3.medium" + ] + }, + "il-central-1": { + "enum": [ + "db.r5.xlarge", + "db.r5.large", + "db.r5.12xlarge", + "db.r5.8xlarge", "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", + "db.r5.2xlarge", "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r5.24xlarge", + "db.t3.medium" ] }, - "me-south-1": { + "me-central-1": { "enum": [ + "db.r5d.xlarge", + "db.r5.large", + "db.r6g.large", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", + "db.r5.4xlarge", + "db.r5.xlarge", + "db.r5.12xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", "db.r5d.2xlarge", "db.r5d.large", - "db.r5.xlarge", - "db.r5d.24xlarge", + "db.r6g.xlarge", "db.r5d.12xlarge", - "db.r6i.4xlarge", - "db.r5d.4xlarge", - "db.t3.medium", "db.r5.8xlarge", - "db.r6i.large", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" + ] + }, + "me-south-1": { + "enum": [ "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6i.16xlarge", + "db.r5.large", "db.r5d.16xlarge", - "db.r6i.2xlarge", + "db.r5.16xlarge", + "db.r5.2xlarge", + "db.r5.4xlarge", + "db.r5.xlarge", + "db.r6i.4xlarge", + "db.r6i.large", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.r6i.xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r5d.4xlarge", + "db.r5d.2xlarge", + "db.r5d.large", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge" + "db.t3.medium" ] }, "sa-east-1": { "enum": [ + "db.r6gd.large", + "db.r6gd.16xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r6gd.12xlarge", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r5d.large", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r6i.2xlarge", + "db.r5.12xlarge", + "db.r6gd.xlarge", + "db.r6gd.2xlarge", + "db.r6i.xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r6gd.4xlarge", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.r6g.xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", "db.r5.24xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.t3.medium" ] }, "us-east-1": { "enum": [ + "db.r6gd.large", + "db.x2iedn.4xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.x2gd.8xlarge", + "db.r6gd.16xlarge", + "db.x2g.12xlarge", + "db.r4.8xlarge", + "db.r6g.large", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.r5d.16xlarge", + "db.r5.16xlarge", + "db.x2gd.2xlarge", + "db.x2iedn.xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.r5d.large", - "db.r6g.2xlarge", - "db.r5.xlarge", - "db.r6g.4xlarge", - "db.x2g.2xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", + "db.r5.4xlarge", "db.x2g.4xlarge", + "db.x2g.16xlarge", + "db.r5.xlarge", + "db.x2g.large", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", + "db.x2iedn.24xlarge", + "db.r6i.16xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.x2g.12xlarge", + "db.r5.12xlarge", + "db.r6gd.xlarge", + "db.r4.xlarge", + "db.r6gd.2xlarge", + "db.r6i.xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.x2gd.xlarge", "db.r6g.12xlarge", - "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.x2g.8xlarge", + "db.r6i.8xlarge", "db.r6g.16xlarge", - "db.r4.8xlarge", - "db.r5d.16xlarge", - "db.r4.large", - "db.r6i.2xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.x2iedn.2xlarge", + "db.x2gd.4xlarge", + "db.r6g.4xlarge", + "db.x2g.xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.x2iedn.8xlarge", + "db.r4.2xlarge", + "db.r6gd.4xlarge", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.x2gd.16xlarge", "db.r6g.xlarge", - "db.r6i.24xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", - "db.r4.xlarge", + "db.r6i.2xlarge", + "db.x2gd.large", + "db.r5d.12xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.x2g.2xlarge", + "db.x2iedn.16xlarge", + "db.x2gd.12xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.8xlarge", - "db.x2g.8xlarge", - "db.r4.2xlarge", - "db.x2g.large", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r4.4xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.x2g.xlarge", - "db.x2g.16xlarge" + "db.t3.medium" ] }, "us-east-2": { "enum": [ + "db.r6gd.large", + "db.r6gd.16xlarge", + "db.r5.large", + "db.x2iedn.4xlarge", + "db.r5d.xlarge", + "db.r6g.large", + "db.x2g.12xlarge", + "db.r4.8xlarge", + "db.x2gd.8xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.r5d.16xlarge", + "db.r5.16xlarge", + "db.x2gd.2xlarge", + "db.x2iedn.xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.r6g.2xlarge", + "db.r5.4xlarge", + "db.x2g.4xlarge", "db.r5.xlarge", - "db.r5d.large", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.x2g.16xlarge", - "db.x2g.4xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.x2g.12xlarge", + "db.x2g.large", + "db.r6i.16xlarge", + "db.x2iedn.24xlarge", + "db.r5.12xlarge", + "db.r6gd.xlarge", + "db.r4.xlarge", + "db.r6i.xlarge", + "db.r6gd.2xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.x2gd.xlarge", "db.r6g.12xlarge", - "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.x2g.8xlarge", + "db.r6i.8xlarge", "db.r6g.16xlarge", - "db.r4.8xlarge", - "db.r4.large", - "db.r5d.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.x2iedn.2xlarge", + "db.r6g.2xlarge", + "db.x2g.xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.x2gd.4xlarge", + "db.r6gd.4xlarge", + "db.r4.2xlarge", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.x2gd.16xlarge", + "db.r6g.xlarge", + "db.x2gd.large", "db.r6i.2xlarge", - "db.r6i.24xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", - "db.r4.xlarge", + "db.r5d.12xlarge", + "db.x2gd.12xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.x2g.2xlarge", + "db.x2iedn.16xlarge", + "db.x2iedn.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", "db.r5.24xlarge", - "db.x2g.8xlarge", - "db.r4.2xlarge", - "db.x2g.large", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.x2g.xlarge", - "db.r4.4xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge", - "db.x2g.2xlarge" + "db.t3.medium" ] }, "us-gov-east-1": { "enum": [ - "db.r5d.2xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.r6g.large", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r5d.large", - "db.r6g.4xlarge", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r6i.2xlarge", + "db.r5.12xlarge", + "db.r6i.xlarge", + "db.r6g.12xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", "db.r5.24xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.t3.medium" ] }, "us-gov-west-1": { "enum": [ + "db.r5d.xlarge", + "db.r5.large", + "db.r6g.large", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.r5d.large", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.2xlarge", - "db.r6g.4xlarge", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r4.8xlarge", - "db.r4.large", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", "db.r5.12xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.r4.2xlarge", - "db.r5.16xlarge", "db.r6i.xlarge", - "db.r4.4xlarge", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r4.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "us-west-1": { "enum": [ - "db.r5d.2xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.r6g.large", + "db.r5d.16xlarge", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5d.large", - "db.r6g.2xlarge", + "db.r5.4xlarge", "db.r5.xlarge", - "db.r6g.4xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r6i.2xlarge", + "db.r5.12xlarge", + "db.r6i.xlarge", + "db.t4g.medium", + "db.r6g.12xlarge", "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.r6i.8xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5d.2xlarge", + "db.r5d.large", + "db.r6g.xlarge", "db.r6i.12xlarge", - "db.r5.12xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r5d.24xlarge", "db.r5d.8xlarge", - "db.r5.large", "db.r5.24xlarge", - "db.r6g.8xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r6i.8xlarge", - "db.r5.4xlarge", - "db.r6g.xlarge" + "db.t3.medium" ] }, "us-west-2": { "enum": [ + "db.r6gd.large", + "db.x2iedn.4xlarge", + "db.r5d.xlarge", + "db.x2gd.8xlarge", + "db.r5.large", + "db.r6g.large", + "db.x2g.12xlarge", + "db.r4.8xlarge", + "db.r6gd.16xlarge", + "db.r6gd.12xlarge", + "db.r5d.16xlarge", + "db.r4.4xlarge", + "db.r5.16xlarge", + "db.x2gd.2xlarge", + "db.x2iedn.xlarge", "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.r6g.2xlarge", - "db.r5.xlarge", - "db.r5d.large", - "db.r6g.4xlarge", - "db.x2g.2xlarge", - "db.t4g.medium", - "db.r5d.24xlarge", - "db.r5d.12xlarge", + "db.r5.4xlarge", "db.x2g.4xlarge", - "db.r6i.4xlarge", - "db.r6g.large", - "db.r5d.4xlarge", - "db.t3.medium", - "db.r5.8xlarge", + "db.x2g.16xlarge", + "db.r5.xlarge", + "db.x2g.large", + "db.x2iedn.24xlarge", "db.r6i.large", - "db.r5d.xlarge", - "db.r6i.32xlarge", - "db.x2g.12xlarge", - "db.r6g.12xlarge", "db.r6i.16xlarge", - "db.r6g.16xlarge", - "db.r5d.16xlarge", - "db.r4.large", - "db.r4.8xlarge", - "db.r6i.2xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", + "db.r6i.4xlarge", "db.r5.12xlarge", + "db.r6gd.xlarge", "db.r4.xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r6g.8xlarge", - "db.r5.24xlarge", - "db.x2g.8xlarge", - "db.r4.2xlarge", - "db.x2g.large", - "db.x2g.xlarge", - "db.r5.16xlarge", + "db.r6gd.2xlarge", "db.r6i.xlarge", - "db.r4.4xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.x2gd.xlarge", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.x2g.8xlarge", "db.r6i.8xlarge", - "db.r5.4xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.r5d.4xlarge", + "db.x2iedn.2xlarge", + "db.x2gd.4xlarge", + "db.r6g.4xlarge", + "db.x2g.xlarge", + "db.r5d.2xlarge", + "db.r6g.2xlarge", + "db.x2iedn.8xlarge", + "db.r6gd.4xlarge", + "db.r4.2xlarge", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.x2gd.16xlarge", "db.r6g.xlarge", - "db.x2g.16xlarge" + "db.x2gd.large", + "db.r6i.2xlarge", + "db.r6i.12xlarge", + "db.r5d.12xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.x2g.2xlarge", + "db.x2iedn.16xlarge", + "db.x2gd.12xlarge", + "db.r5d.24xlarge", + "db.r5d.8xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/dbinstanceclass_enum.json b/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/dbinstanceclass_enum.json index 52196be541..9039490700 100644 --- a/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/dbinstanceclass_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_rds_dbinstance/dbinstanceclass_enum.json @@ -2,3660 +2,4864 @@ "_description": "Automatically updated using update_specs_from_pricing", "af-south-1": { "enum": [ - "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.r5d.large", + "db.r5.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.serverless", "db.r5.xlarge", - "db.m5d.large", - "db.m5d.24xlarge", - "db.m5.xlarge", - "db.r5.4xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.m5d.xlarge", + "db.r6i.large", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", "db.r5.8xlarge.tpc2.mem3x", - "db.r5d.24xlarge", - "db.r5d.12xlarge", - "db.r5.large.tpc1.mem2x", - "db.m5d.12xlarge", - "db.r5d.4xlarge", + "db.m6i.4xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", "db.t3.medium", - "db.m5d.8xlarge", - "db.m5.2xlarge", - "db.r5.8xlarge", - "db.m5.12xlarge", - "db.r5d.xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.t3.large", - "db.r5d.16xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5d.4xlarge", - "db.m5d.16xlarge", "db.r5.xlarge.tpc2.mem4x", - "db.m5.large", - "db.t3.xlarge", + "db.m5d.8xlarge", "db.m5d.2xlarge", - "db.r5.12xlarge", + "db.m5d.xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", "db.m5.8xlarge", "db.r5.4xlarge.tpc2.mem2x", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5d.8xlarge", - "db.r5.large", - "db.r5.24xlarge", - "db.r5.4xlarge.tpc2.mem3x", "db.m5.4xlarge", - "db.r5.6xlarge.tpc2.mem4x", - "db.r5.16xlarge", - "db.r5.2xlarge.tpc1.mem2x", "db.r5.xlarge.tpc2.mem2x", - "db.t3.small", + "db.m6g.xlarge", + "db.m6i.12xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.t3.xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.t3.2xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.r6g.large", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", "db.m5.24xlarge", - "db.serverless", - "db.m5.16xlarge" + "db.r6i.4xlarge", + "db.t4g.small", + "db.m5d.12xlarge", + "db.m6i.8xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5d.8xlarge", + "db.m6i.24xlarge", + "db.m5.2xlarge", + "db.r5d.16xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5d.large", + "db.m5d.large", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.m5d.4xlarge", + "db.r5.8xlarge" ] }, "ap-east-1": { "enum": [ - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.t3.micro", - "db.m5.2xlarge", - "db.r6i.16xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r5.2xlarge.tpc2.mem4x", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.serverless", - "db.r5d.2xlarge", - "db.r5.xlarge", - "db.r5d.24xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", "db.r5d.xlarge", - "db.m6g.2xlarge", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.r5.4xlarge.tpc2.mem3x", + "db.t3.small", "db.r5.6xlarge.tpc2.mem4x", - "db.r5.4xlarge", - "db.r5d.large", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r5d.12xlarge", - "db.m5d.12xlarge", + "db.serverless", + "db.r5.xlarge", + "db.r6i.large", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", "db.x1.32xlarge", + "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", "db.m5d.8xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t4g.small", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m5d.xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6g.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.m6i.12xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.r6g.2xlarge", + "db.t3.xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.m5d.xlarge", - "db.x1.16xlarge", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.m6g.8xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5d.4xlarge", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.t4g.small", + "db.m5d.12xlarge", + "db.m6i.8xlarge", "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5d.8xlarge", + "db.m6i.24xlarge", + "db.m5.2xlarge", + "db.r5d.16xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r5.24xlarge", - "db.t4g.xlarge", - "db.t3.small", - "db.t4g.2xlarge", - "db.m5d.16xlarge", + "db.m6i.16xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" - ] - }, - "ap-northeast-1": { - "enum": [ - "db.x1e.8xlarge", - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m5.xlarge", - "db.m1.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", - "db.r5b.6xlarge.tpc2.mem4x", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.z1d.3xlarge", - "db.r5b.2xlarge.tpc1.mem2x", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.x2iezn.4xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r5b.4xlarge.tpc2.mem4x", - "db.r4.xlarge", + "db.m6g.2xlarge", "db.r5.2xlarge.tpc2.mem4x", - "db.r5b.12xlarge", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5d.large", + "db.m5d.large", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.m5d.4xlarge", + "db.r5.8xlarge" + ] + }, + "ap-northeast-1": { + "enum": [ + "db.m1.small", + "db.r6gd.16xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r5b.4xlarge.tpc2.mem2x", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.m7g.4xlarge", "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", + "db.m6idn.24xlarge", "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", - "db.x1e.4xlarge", - "db.m1.large", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.m3.2xlarge", - "db.t2.large", - "db.x2iezn.6xlarge", - "db.x2iezn.12xlarge", + "db.r6id.xlarge", + "db.r6i.large", "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.r5b.4xlarge.tpc2.mem3x", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r5b.xlarge.tpc2.mem4x", - "db.r6g.16xlarge", - "db.r5b.large.tpc1.mem2x", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge.tpc2.mem8x", + "db.r6idn.16xlarge", + "db.r6idn.large", + "db.r3.4xlarge", "db.r5b.2xlarge", - "db.z1d.xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", + "db.r6in.32xlarge", + "db.m6idn.4xlarge", + "db.r7g.16xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.r7g.4xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", "db.m6gd.4xlarge", - "db.r5b.8xlarge", + "db.r6i.8xlarge", + "db.r6in.xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.m6idn.xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.r6in.large", + "db.x1.16xlarge", + "db.m7g.12xlarge", + "db.r7g.2xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.m6id.2xlarge", + "db.r6in.24xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", + "db.x1.32xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.r6id.12xlarge", "db.x2iezn.2xlarge", - "db.x1e.2xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.x2idn.24xlarge", - "db.r6gd.8xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.x2iedn.16xlarge", + "db.x2iezn.12xlarge", + "db.m6in.8xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m1.xlarge", + "db.m6gd.large", + "db.r5b.16xlarge", + "db.m5d.xlarge", "db.r6gd.12xlarge", - "db.r5d.12xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.m6idn.large", + "db.r5.16xlarge", + "db.r6idn.24xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m2.xlarge", + "db.r6in.4xlarge", + "db.r6id.8xlarge", + "db.r7g.8xlarge", + "db.m5.8xlarge", + "db.r6id.24xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.r6idn.12xlarge", + "db.x2iedn.24xlarge", "db.x2iezn.8xlarge", - "db.r5b.12xlarge.tpc2.mem2x", - "db.m5d.12xlarge", - "db.t2.micro", - "db.x1.32xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6idn.16xlarge", + "db.x1e.4xlarge", + "db.m4.4xlarge", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", + "db.m7g.xlarge", "db.r5b.xlarge", - "db.r5b.4xlarge", - "db.m5d.8xlarge", - "db.r6i.large", + "db.r5b.6xlarge.tpc2.mem4x", + "db.r5b.xlarge.tpc2.mem4x", + "db.m6i.12xlarge", + "db.t4g.medium", + "db.r6id.16xlarge", + "db.x2iedn.32xlarge", + "db.m2.2xlarge", + "db.m3.large", + "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", "db.x1e.32xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", + "db.t3.xlarge", + "db.m6idn.2xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.m6id.4xlarge", + "db.r6in.12xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.m6id.12xlarge", + "db.m6idn.8xlarge", + "db.m6in.32xlarge", + "db.m6in.24xlarge", + "db.r6in.2xlarge", + "db.r7g.xlarge", + "db.r6i.2xlarge", "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.r5b.8xlarge.tpc2.mem3x", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5b.12xlarge.tpc2.mem2x", + "db.r5d.24xlarge", + "db.m6in.12xlarge", + "db.r6gd.large", + "db.x2iezn.6xlarge", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r6id.32xlarge", + "db.m6id.24xlarge", + "db.x1e.16xlarge", + "db.r5.2xlarge", + "db.m3.xlarge", "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.m1.medium", - "db.r4.8xlarge", - "db.r4.large", + "db.m6g.large", + "db.r5b.8xlarge", + "db.m5.24xlarge", + "db.r6i.4xlarge", + "db.r5b.4xlarge.tpc2.mem4x", "db.t4g.small", - "db.x2iedn.24xlarge", + "db.m6idn.32xlarge", + "db.r6idn.2xlarge", + "db.m6in.16xlarge", + "db.r6gd.2xlarge", + "db.m5d.12xlarge", + "db.r7g.12xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r6idn.8xlarge", + "db.r6id.4xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.m6id.large", + "db.r5.2xlarge.tpc2.mem8x", + "db.m3.medium", + "db.r6i.32xlarge", + "db.x1e.2xlarge", "db.r3.8xlarge", - "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m1.small", - "db.m5.4xlarge", - "db.m2.4xlarge", - "db.r5b.16xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.m2.2xlarge", - "db.r5b.large", - "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r5b.24xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.r6g.2xlarge", - "db.x2idn.16xlarge", - "db.r5b.2xlarge.tpc2.mem4x", - "db.r6g.4xlarge", - "db.m5d.24xlarge", + "db.m7g.large", + "db.m5.16xlarge", "db.t1.micro", - "db.x1e.xlarge", - "db.m5d.xlarge", - "db.x2iedn.32xlarge", - "db.z1d.large", + "db.z1d.xlarge", + "db.m6i.large", + "db.r5d.4xlarge", + "db.m6gd.12xlarge", "db.x2idn.32xlarge", - "db.x1.16xlarge", - "db.m6gd.2xlarge", - "db.r5.large.tpc1.mem2x", + "db.r6g.2xlarge", + "db.m6idn.12xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.r7g.large", + "db.t2.medium", + "db.m1.medium", + "db.r6in.16xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.m6id.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.m6id.8xlarge", "db.t2.small", - "db.m2.xlarge", - "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", - "db.m3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", - "db.m6g.large", - "db.m5d.4xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.m6i.4xlarge", - "db.r5.4xlarge.tpc2.mem2x", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m6id.32xlarge", + "db.m5.2xlarge", + "db.m7g.8xlarge", + "db.m7g.16xlarge", + "db.r6idn.4xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r6id.large", + "db.r5d.16xlarge", + "db.m6in.large", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.m7g.2xlarge", + "db.z1d.6xlarge", + "db.r6id.2xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r6idn.xlarge", "db.r5.12xlarge", "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", - "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", - "db.t3.small", - "db.r6gd.xlarge", - "db.m4.large", - "db.r3.4xlarge", - "db.m4.16xlarge", - "db.m3.medium", - "db.t4g.2xlarge", - "db.x1e.16xlarge", - "db.m6gd.16xlarge", - "db.r5b.xlarge.tpc2.mem2x", - "db.m5d.16xlarge", + "db.m6i.16xlarge", + "db.m6id.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m1.large", + "db.m6in.2xlarge", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r5.large.tpc1.mem2x", + "db.r3.xlarge", + "db.m2.4xlarge", + "db.r6idn.32xlarge", + "db.r5b.8xlarge.tpc2.mem3x", + "db.t3.large", + "db.z1d.3xlarge", + "db.x2iedn.2xlarge", + "db.r5b.2xlarge.tpc2.mem8x", + "db.r5.4xlarge.tpc2.mem4x", + "db.m6gd.16xlarge", + "db.x1e.xlarge", + "db.m6in.4xlarge", + "db.m5d.large", + "db.r5d.large", + "db.r6in.8xlarge", + "db.m6gd.8xlarge", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.24xlarge", + "db.r6i.12xlarge", + "db.r5b.large.tpc1.mem2x", + "db.m6in.xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.m4.2xlarge", + "db.m5d.4xlarge", + "db.x2iezn.4xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "ap-northeast-2": { "enum": [ - "db.x1e.8xlarge", - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.z1d.3xlarge", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5b.12xlarge", + "db.r6gd.16xlarge", + "db.r5d.xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", "db.r5.xlarge", + "db.r6i.large", + "db.z1d.2xlarge", + "db.r5b.2xlarge", + "db.r3.4xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.r4.2xlarge", + "db.m5.12xlarge", + "db.x1.32xlarge", + "db.r6g.xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.m5.xlarge", "db.x2iedn.16xlarge", - "db.z1d.6xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m5d.xlarge", + "db.r5b.16xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.r5.4xlarge.tpc2.mem3x", + "db.r5.16xlarge", + "db.m5.8xlarge", + "db.r6id.24xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", "db.x1e.4xlarge", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", + "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.r5b.xlarge.tpc2.mem4x", + "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.x1e.32xlarge", + "db.t3.xlarge", "db.r4.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", "db.r5d.24xlarge", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r6id.32xlarge", + "db.x1e.16xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", + "db.r5b.8xlarge", + "db.m5.24xlarge", + "db.r6i.4xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.t4g.small", + "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", "db.t2.large", - "db.z1d.2xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.x1e.2xlarge", + "db.r3.8xlarge", + "db.m5.16xlarge", "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", "db.m6i.large", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge", "db.z1d.xlarge", + "db.x2idn.32xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.r5b.8xlarge", - "db.x1e.2xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.x2idn.24xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r5d.12xlarge", - "db.m5d.12xlarge", - "db.x1.32xlarge", - "db.t2.micro", - "db.r5b.xlarge", - "db.r5b.4xlarge", - "db.m5d.8xlarge", - "db.r6i.large", - "db.x1e.32xlarge", - "db.r5.2xlarge.tpc2.mem8x", "db.m6i.xlarge", - "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.r3.8xlarge", - "db.x2iedn.24xlarge", - "db.m5.8xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.t2.small", "db.r5d.8xlarge", - "db.r6g.8xlarge", - "db.m5.4xlarge", - "db.r5b.16xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r5b.large", - "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r6g.xlarge", - "db.r5b.24xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.r6g.2xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", "db.x2idn.16xlarge", - "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.x1e.xlarge", - "db.m5d.xlarge", - "db.x2iedn.32xlarge", - "db.z1d.large", - "db.x2idn.32xlarge", - "db.x1.16xlarge", - "db.t2.small", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", - "db.m6g.8xlarge", - "db.m6g.large", - "db.m5d.4xlarge", - "db.m5d.16xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.z1d.6xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.m6i.4xlarge", "db.z1d.12xlarge", - "db.r5.24xlarge", - "db.t4g.xlarge", - "db.m4.large", - "db.m4.16xlarge", - "db.r3.4xlarge", - "db.x1e.16xlarge", - "db.t4g.2xlarge", - "db.t3.small", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r5.large.tpc1.mem2x", + "db.r5b.8xlarge.tpc2.mem3x", + "db.r3.xlarge", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.z1d.3xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5b.2xlarge.tpc2.mem8x", + "db.x1e.xlarge", + "db.m5d.large", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.24xlarge", + "db.r6i.12xlarge", + "db.r5b.large.tpc1.mem2x", + "db.r5.8xlarge", + "db.m5d.4xlarge", + "db.m4.2xlarge", + "db.r4.large", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "ap-northeast-3": { "enum": [ - "db.r5.2xlarge", - "db.r5d.2xlarge", - "db.m5d.large", - "db.r5d.large", + "db.r5.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.serverless", "db.r5.xlarge", - "db.m5d.24xlarge", - "db.m5.xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.r5.8xlarge.tpc2.mem3x", - "db.m5d.xlarge", - "db.r4.16xlarge", - "db.r5d.24xlarge", + "db.r6i.large", + "db.t2.xlarge", + "db.r6g.12xlarge", "db.m4.10xlarge", - "db.r5d.12xlarge", - "db.t2.small", - "db.r5.large.tpc1.mem2x", - "db.t2.large", - "db.m4.4xlarge", - "db.m5d.12xlarge", - "db.r5d.4xlarge", - "db.t2.micro", + "db.m6g.16xlarge", + "db.m6gd.4xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", + "db.m4.16xlarge", + "db.m4.large", "db.t3.micro", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", "db.t3.medium", - "db.r5.8xlarge", "db.m5d.8xlarge", - "db.m5.2xlarge", - "db.r5d.xlarge", - "db.m5.12xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.t2.2xlarge", - "db.t3.large", - "db.t2.medium", - "db.r5d.16xlarge", - "db.r4.8xlarge", - "db.r4.large", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5d.16xlarge", - "db.m5d.4xlarge", "db.r5.xlarge.tpc2.mem4x", - "db.m5.large", - "db.t3.xlarge", "db.m5d.2xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.m5.8xlarge", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5.12xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r5.24xlarge", + "db.m6gd.large", + "db.m5d.xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.r5.16xlarge", "db.r5.4xlarge.tpc2.mem3x", + "db.m5.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.t3.small", - "db.m4.large", - "db.m4.16xlarge", - "db.r4.2xlarge", - "db.m4.2xlarge", - "db.m4.xlarge", - "db.r5.6xlarge.tpc2.mem4x", - "db.r5.16xlarge", - "db.r4.4xlarge", - "db.r5.2xlarge.tpc1.mem2x", - "db.r5.xlarge.tpc2.mem2x", - "db.r5.4xlarge", - "db.t2.xlarge", - "db.m5.24xlarge", - "db.serverless", - "db.m5.16xlarge" - ] - }, - "ap-south-1": { - "enum": [ - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", + "db.x2iedn.24xlarge", "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.z1d.3xlarge", - "db.r6i.16xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.r4.xlarge", "db.m6i.12xlarge", - "db.r5d.16xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r5.2xlarge.tpc2.mem4x", - "db.r4.xlarge", - "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", - "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.t3.xlarge", "db.r4.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", "db.r5d.24xlarge", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", + "db.m5.24xlarge", + "db.t4g.small", + "db.r6i.4xlarge", + "db.m5d.12xlarge", + "db.m6i.8xlarge", "db.t2.large", - "db.z1d.2xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", "db.m6i.large", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.z1d.xlarge", + "db.m6gd.12xlarge", + "db.r6g.2xlarge", + "db.m6g.12xlarge", + "db.r5d.2xlarge", + "db.t2.medium", "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.m6gd.4xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.r6gd.8xlarge", - "db.x2idn.24xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.m5d.12xlarge", - "db.t2.micro", - "db.x1.32xlarge", - "db.m5d.8xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", "db.m6i.xlarge", - "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.r3.8xlarge", - "db.x2iedn.24xlarge", - "db.m5.8xlarge", + "db.t2.small", "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m5.4xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.t2.micro", "db.r6i.xlarge", - "db.r5.2xlarge.tpc1.mem2x", - "db.r6g.xlarge", - "db.t2.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.r6g.2xlarge", - "db.x2idn.16xlarge", - "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.m5d.xlarge", - "db.x2iedn.32xlarge", - "db.z1d.large", - "db.x2idn.32xlarge", - "db.x1.16xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", "db.m6gd.2xlarge", + "db.r6g.16xlarge", "db.r5.large.tpc1.mem2x", - "db.t2.small", - "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", - "db.m6g.large", - "db.m5d.4xlarge", - "db.m5d.16xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.m6i.4xlarge", - "db.r5.12xlarge", - "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", - "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", - "db.r6gd.xlarge", - "db.m4.large", - "db.r3.4xlarge", - "db.m4.16xlarge", - "db.t4g.2xlarge", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5.4xlarge.tpc2.mem4x", "db.m6gd.16xlarge", - "db.t3.small", - "db.t4g.large", - "db.m5.16xlarge" + "db.m5d.large", + "db.r5d.large", + "db.m6gd.8xlarge", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.m4.2xlarge", + "db.m5d.4xlarge", + "db.x2iedn.8xlarge" ] }, - "ap-south-2": { + "ap-south-1": { "enum": [ - "db.r5.2xlarge", + "db.r6gd.16xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.m7g.4xlarge", + "db.serverless", "db.r5.xlarge", - "db.m5.xlarge", - "db.r5.4xlarge", + "db.r6i.large", + "db.z1d.2xlarge", + "db.r3.4xlarge", + "db.r7g.16xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.r7g.4xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", + "db.m6gd.4xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m7g.12xlarge", + "db.r7g.2xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", + "db.x1.32xlarge", + "db.m4.16xlarge", + "db.m4.large", "db.t3.micro", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", "db.t3.medium", - "db.r5.8xlarge", - "db.m5.2xlarge", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.t3.2xlarge", - "db.t3.large", + "db.m5d.8xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m6gd.large", + "db.m5d.xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", "db.m5.large", - "db.t3.xlarge", - "db.r5.12xlarge", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.r7g.8xlarge", "db.m5.8xlarge", - "db.r5.large", - "db.r5.24xlarge", + "db.r6id.24xlarge", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.r5.16xlarge", - "db.t3.small", - "db.m5.24xlarge", - "db.serverless", - "db.m5.16xlarge" - ] - }, - "ap-southeast-1": { - "enum": [ - "db.x1e.8xlarge", - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m5.xlarge", - "db.m1.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", - "db.r5b.6xlarge.tpc2.mem4x", + "db.x2iedn.24xlarge", "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.z1d.3xlarge", - "db.r5b.2xlarge.tpc1.mem2x", - "db.r6i.16xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", + "db.m7g.xlarge", "db.m6i.12xlarge", - "db.r5d.16xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r5b.4xlarge.tpc2.mem4x", - "db.r4.xlarge", - "db.r5b.12xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r5b.4xlarge.tpc2.mem2x", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", - "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", - "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", - "db.x1e.4xlarge", - "db.m1.large", + "db.r5.2xlarge.tpc1.mem2x", + "db.t3.xlarge", "db.r4.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.r3.large", + "db.r7g.xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", "db.r5d.24xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r6id.32xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", + "db.m5.24xlarge", + "db.r6i.4xlarge", + "db.t4g.small", + "db.r7g.12xlarge", + "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", "db.t2.large", - "db.m3.2xlarge", - "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.r5b.4xlarge.tpc2.mem3x", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r5b.xlarge.tpc2.mem4x", - "db.r6g.16xlarge", - "db.r5b.large.tpc1.mem2x", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge.tpc2.mem8x", - "db.r5b.2xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.r3.8xlarge", + "db.m7g.large", + "db.m5.16xlarge", "db.z1d.xlarge", + "db.m6i.large", + "db.r5d.4xlarge", + "db.m6gd.12xlarge", + "db.x2idn.32xlarge", + "db.r6g.2xlarge", + "db.m6g.12xlarge", + "db.r5d.2xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", + "db.r7g.large", "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5b.8xlarge", - "db.r5.6xlarge.tpc2.mem4x", - "db.m6gd.4xlarge", - "db.x1e.2xlarge", - "db.r4.4xlarge", + "db.m6i.xlarge", + "db.t2.small", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.m7g.8xlarge", + "db.m7g.16xlarge", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", "db.r5.4xlarge", + "db.m7g.2xlarge", + "db.z1d.6xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.z1d.12xlarge", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r5.large.tpc1.mem2x", + "db.r3.xlarge", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.z1d.3xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.m6gd.16xlarge", "db.r5d.large", - "db.x2idn.24xlarge", + "db.m5d.large", + "db.m6gd.8xlarge", "db.r6gd.8xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.r5b.12xlarge.tpc2.mem2x", - "db.m5d.12xlarge", - "db.t2.micro", - "db.x1.32xlarge", - "db.r5b.xlarge", - "db.r5b.4xlarge", - "db.m5d.8xlarge", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.m5d.4xlarge", + "db.r5.8xlarge", + "db.m4.2xlarge", + "db.r4.large", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" + ] + }, + "ap-south-2": { + "enum": [ + "db.r5.large", + "db.r5d.xlarge", + "db.t3.small", + "db.serverless", + "db.r5.xlarge", "db.r6i.large", - "db.x1e.32xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.m6i.4xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", + "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", + "db.m5d.2xlarge", + "db.m5d.xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.m5.8xlarge", + "db.m5.4xlarge", + "db.m6g.xlarge", + "db.m6i.12xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.t3.xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.r5b.8xlarge.tpc2.mem3x", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.r6g.large", + "db.r5.2xlarge", "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.m1.medium", - "db.r4.8xlarge", - "db.r4.large", + "db.m6g.large", + "db.r6i.4xlarge", "db.t4g.small", - "db.r3.8xlarge", - "db.x2iedn.24xlarge", - "db.m5.8xlarge", + "db.m5.24xlarge", + "db.m5d.12xlarge", + "db.m6i.8xlarge", + "db.r6i.32xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", + "db.m6i.24xlarge", + "db.m5.2xlarge", + "db.r5d.16xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r6g.16xlarge", + "db.t3.large", + "db.r5d.large", + "db.m5d.large", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.m5d.4xlarge", + "db.r5.8xlarge" + ] + }, + "ap-southeast-1": { + "enum": [ "db.m1.small", - "db.m5.4xlarge", - "db.m2.4xlarge", + "db.r6gd.16xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.m7g.4xlarge", + "db.serverless", + "db.r5.xlarge", + "db.r6i.large", + "db.z1d.2xlarge", + "db.r5b.2xlarge", + "db.r3.4xlarge", + "db.r7g.16xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.r7g.4xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", + "db.m6gd.4xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m7g.12xlarge", + "db.r7g.2xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.m6gd.xlarge", + "db.x1.32xlarge", + "db.r6g.xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.x2iedn.16xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m1.xlarge", + "db.m6gd.large", + "db.m5d.xlarge", "db.r5b.16xlarge", - "db.m4.2xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m2.xlarge", + "db.r7g.8xlarge", + "db.m5.8xlarge", + "db.r6id.24xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.x1e.4xlarge", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", + "db.m7g.xlarge", + "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", "db.m2.2xlarge", - "db.r6i.xlarge", - "db.r5b.large", + "db.r5b.xlarge.tpc2.mem4x", + "db.m3.large", + "db.m5d.24xlarge", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r5b.24xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.x2idn.16xlarge", - "db.r6g.2xlarge", - "db.r5b.2xlarge.tpc2.mem4x", + "db.x1e.32xlarge", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.t1.micro", - "db.x1e.xlarge", - "db.m5d.xlarge", - "db.x2iedn.32xlarge", - "db.z1d.large", - "db.x2idn.32xlarge", - "db.x1.16xlarge", - "db.m6gd.2xlarge", - "db.m2.xlarge", - "db.t2.small", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.r7g.xlarge", + "db.t3.2xlarge", + "db.r6i.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5b.12xlarge.tpc2.mem2x", + "db.r5d.24xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", + "db.r6id.32xlarge", + "db.x1e.16xlarge", + "db.r5.2xlarge", "db.m3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5d.16xlarge", - "db.m5d.4xlarge", + "db.r5b.8xlarge", + "db.r6i.4xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.m5.24xlarge", + "db.t4g.small", + "db.r7g.12xlarge", + "db.r6gd.2xlarge", + "db.m5d.12xlarge", + "db.m6i.8xlarge", + "db.t2.large", "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.m6i.4xlarge", - "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", + "db.r5b.12xlarge", + "db.r5.2xlarge.tpc2.mem8x", + "db.m3.medium", + "db.r6i.32xlarge", + "db.x1e.2xlarge", + "db.r3.8xlarge", + "db.m7g.large", + "db.m5.16xlarge", + "db.t1.micro", + "db.r5d.4xlarge", + "db.m6i.large", + "db.x2idn.32xlarge", "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", + "db.z1d.xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", + "db.r7g.large", + "db.m1.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.t2.small", + "db.r5d.8xlarge", "db.r6gd.xlarge", - "db.m4.large", - "db.m4.16xlarge", - "db.r3.4xlarge", - "db.m3.medium", - "db.t4g.2xlarge", - "db.x1e.16xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.m7g.8xlarge", + "db.m7g.16xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.m7g.2xlarge", + "db.z1d.6xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.z1d.12xlarge", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.m1.large", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r3.xlarge", + "db.r5.large.tpc1.mem2x", + "db.r5b.8xlarge.tpc2.mem3x", + "db.m2.4xlarge", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.z1d.3xlarge", + "db.r5b.2xlarge.tpc2.mem8x", + "db.r5.4xlarge.tpc2.mem4x", "db.m6gd.16xlarge", - "db.r5b.xlarge.tpc2.mem2x", - "db.t3.small", - "db.t4g.large", - "db.m5.16xlarge" + "db.x1e.xlarge", + "db.m5d.large", + "db.m6gd.8xlarge", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.24xlarge", + "db.r6i.12xlarge", + "db.r5b.large.tpc1.mem2x", + "db.r4.large", + "db.r5.8xlarge", + "db.m5d.4xlarge", + "db.m4.2xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "ap-southeast-2": { "enum": [ - "db.x1e.8xlarge", - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m5.xlarge", - "db.m1.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.z1d.3xlarge", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r4.xlarge", - "db.r5b.12xlarge", - "db.r5.2xlarge.tpc2.mem4x", + "db.m1.small", + "db.r6gd.16xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.m7g.4xlarge", "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", - "db.x1e.4xlarge", - "db.m1.large", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", - "db.m3.2xlarge", + "db.r6id.xlarge", + "db.r6i.large", "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", "db.r5b.2xlarge", - "db.z1d.xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5b.8xlarge", + "db.r3.4xlarge", + "db.r7g.16xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.r7g.4xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", "db.m6gd.4xlarge", - "db.r5.6xlarge.tpc2.mem4x", - "db.x1e.2xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.r6gd.8xlarge", - "db.x2idn.24xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.m5d.12xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m7g.12xlarge", + "db.m6id.2xlarge", + "db.r4.2xlarge", + "db.m5.12xlarge", + "db.r7g.2xlarge", + "db.m6gd.xlarge", "db.x1.32xlarge", - "db.t2.micro", - "db.r5b.4xlarge", - "db.r5b.xlarge", - "db.x1e.32xlarge", - "db.r6i.large", + "db.r6g.xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.r6id.12xlarge", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", "db.m5d.8xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", - "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.m1.medium", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.x2iedn.24xlarge", - "db.r3.8xlarge", - "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m1.small", - "db.m5.4xlarge", - "db.m2.4xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m1.xlarge", + "db.m6gd.large", + "db.m5d.xlarge", "db.r5b.16xlarge", - "db.m4.2xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m2.xlarge", + "db.r6id.8xlarge", + "db.r7g.8xlarge", + "db.r6id.24xlarge", + "db.m5.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.x1e.4xlarge", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", + "db.m7g.xlarge", + "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", "db.m2.2xlarge", - "db.r6i.xlarge", - "db.r5b.large", - "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r5b.24xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.x2idn.16xlarge", - "db.r6g.2xlarge", - "db.m5d.large", - "db.t1.micro", + "db.r5b.xlarge.tpc2.mem4x", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.r6id.16xlarge", + "db.m6i.12xlarge", + "db.m3.large", "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.x1e.32xlarge", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.x1e.xlarge", - "db.x2iedn.32xlarge", - "db.m5d.xlarge", - "db.z1d.large", - "db.x1.16xlarge", - "db.t2.small", - "db.m2.xlarge", - "db.r5.large.tpc1.mem2x", - "db.m6gd.2xlarge", - "db.r6i.4xlarge", + "db.m6id.4xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.m6id.12xlarge", + "db.r7g.xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5d.24xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", + "db.r6id.32xlarge", + "db.m6id.24xlarge", + "db.x1e.16xlarge", + "db.r5.2xlarge", "db.m3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5d.16xlarge", - "db.m5d.4xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r5.12xlarge", - "db.m6i.4xlarge", - "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", - "db.m6gd.12xlarge", - "db.t4g.xlarge", + "db.r5b.8xlarge", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.t4g.small", + "db.r5b.4xlarge.tpc2.mem4x", + "db.r7g.12xlarge", + "db.m5d.12xlarge", "db.r6gd.2xlarge", - "db.t3.small", - "db.r6gd.xlarge", - "db.m4.large", - "db.r3.4xlarge", - "db.m4.16xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r6id.4xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.m6id.large", + "db.r5.2xlarge.tpc2.mem8x", "db.m3.medium", - "db.t4g.2xlarge", - "db.x1e.16xlarge", - "db.m6gd.16xlarge", + "db.r6i.32xlarge", + "db.x1e.2xlarge", + "db.r3.8xlarge", + "db.m7g.large", + "db.m5.16xlarge", + "db.t1.micro", + "db.r5d.4xlarge", + "db.z1d.xlarge", "db.x2idn.32xlarge", + "db.m6i.large", + "db.m6gd.12xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", + "db.r7g.large", + "db.m1.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.m6id.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.m6id.8xlarge", + "db.t2.small", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m6id.32xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.m7g.8xlarge", + "db.m7g.16xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r6id.large", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.m7g.2xlarge", + "db.z1d.6xlarge", + "db.r6id.2xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.z1d.12xlarge", + "db.m6i.16xlarge", + "db.m6id.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.m1.large", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r3.xlarge", + "db.m2.4xlarge", + "db.r5b.8xlarge.tpc2.mem3x", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.z1d.3xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5b.2xlarge.tpc2.mem8x", + "db.x1e.xlarge", + "db.m6gd.16xlarge", + "db.r5d.large", + "db.m5d.large", + "db.m6gd.8xlarge", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.large.tpc1.mem2x", + "db.r6i.12xlarge", + "db.r5b.24xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.m4.2xlarge", + "db.m5d.4xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "ap-southeast-3": { "enum": [ - "db.r5d.2xlarge", - "db.r5.2xlarge", - "db.r5d.large", + "db.r6gd.16xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.serverless", "db.r5.xlarge", - "db.m5d.large", - "db.m5d.24xlarge", - "db.m5.xlarge", - "db.r5.4xlarge.tpc2.mem4x", + "db.r6i.large", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.m6gd.4xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.m5.12xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", + "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.x2iedn.16xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.8xlarge", + "db.m5d.2xlarge", + "db.m6gd.large", "db.m5d.xlarge", - "db.r5d.24xlarge", + "db.r6gd.12xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m5.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.x2iedn.24xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.t3.xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", "db.r5d.12xlarge", - "db.r5.large.tpc1.mem2x", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", + "db.r5b.8xlarge", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.t4g.small", "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", "db.r5d.4xlarge", - "db.t3.micro", - "db.t3.medium", - "db.r5.8xlarge", + "db.m6i.large", + "db.m6gd.12xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", "db.m5.2xlarge", - "db.m5d.8xlarge", - "db.m5.12xlarge", - "db.r5d.xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.t3.large", "db.r5d.16xlarge", - "db.r5.12xlarge.tpc2.mem2x", + "db.x2iedn.xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.m6gd.16xlarge", + "db.r5d.large", + "db.m6gd.8xlarge", + "db.m5d.large", + "db.r6gd.8xlarge", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.r5.8xlarge", "db.m5d.4xlarge", - "db.m5d.16xlarge", - "db.r5.xlarge.tpc2.mem4x", + "db.x2iedn.8xlarge" + ] + }, + "ap-southeast-4": { + "enum": [ + "db.m5.2xlarge", + "db.r5.large", + "db.r6g.large", + "db.t3.small", "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.r5.12xlarge", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.r5.6xlarge.tpc2.mem4x", + "db.r5.2xlarge", + "db.r5.4xlarge", + "db.m6g.4xlarge", + "db.serverless", "db.m5.8xlarge", - "db.r5.2xlarge.tpc2.mem4x", + "db.m6g.large", "db.r5.4xlarge.tpc2.mem2x", - "db.r5d.8xlarge", - "db.r5.large", + "db.r5.xlarge", + "db.m5.4xlarge", + "db.r6i.4xlarge", + "db.r6i.large", + "db.m5.24xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.t4g.small", + "db.r5.12xlarge", + "db.r6i.16xlarge", + "db.m6g.xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.r5.12xlarge.tpc2.mem2x", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.r5.2xlarge.tpc2.mem8x", + "db.m6g.16xlarge", + "db.r6g.12xlarge", + "db.r6i.32xlarge", + "db.t3.xlarge", + "db.r6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.m5.16xlarge", + "db.t1.micro", + "db.r5.large.tpc1.mem2x", + "db.r5.8xlarge.tpc2.mem3x", + "db.t3.large", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.m6g.12xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.t3.micro", + "db.t4g.micro", + "db.r5.8xlarge", + "db.r4.large", + "db.m5.xlarge", + "db.t4g.2xlarge", "db.r5.24xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.m5.4xlarge", - "db.t3.small", - "db.r5.6xlarge.tpc2.mem4x", - "db.r5b.8xlarge", - "db.r5.16xlarge", - "db.r5.2xlarge.tpc1.mem2x", - "db.r5.xlarge.tpc2.mem2x", - "db.r5.4xlarge", - "db.m5.24xlarge", - "db.serverless", - "db.m5.16xlarge" + "db.t3.medium", + "db.r5.xlarge.tpc2.mem4x" ] }, - "ap-southeast-4": { + "ca-central-1": { "enum": [ - "db.r5.2xlarge", + "db.r6gd.16xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.serverless", "db.r5.xlarge", - "db.t1.micro", - "db.m5.xlarge", - "db.r5.4xlarge", - "db.r5.4xlarge.tpc2.mem4x", + "db.r6i.large", + "db.r5b.2xlarge", + "db.r3.4xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", "db.r5.8xlarge.tpc2.mem3x", - "db.r5.large.tpc1.mem2x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.r4.2xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", + "db.x1.32xlarge", + "db.m4.16xlarge", + "db.m4.large", "db.t3.micro", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", "db.t3.medium", - "db.r5.8xlarge", - "db.m5.2xlarge", - "db.m5.12xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.t3.large", - "db.r4.large", - "db.r5.12xlarge.tpc2.mem2x", + "db.m5d.8xlarge", "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m5d.xlarge", + "db.r5b.16xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", "db.m5.large", - "db.t3.xlarge", - "db.r5.12xlarge", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", "db.m5.8xlarge", "db.r5.4xlarge.tpc2.mem2x", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5.large", - "db.r5.24xlarge", - "db.r5.4xlarge.tpc2.mem3x", "db.m5.4xlarge", - "db.r5.6xlarge.tpc2.mem4x", - "db.r5.16xlarge", - "db.r5.2xlarge.tpc1.mem2x", - "db.r5.xlarge.tpc2.mem2x", - "db.t3.small", - "db.m5.24xlarge", - "db.serverless", - "db.m5.16xlarge" - ] - }, - "ca-central-1": { - "enum": [ - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", + "db.x2iedn.24xlarge", "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.r6i.16xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.r4.xlarge", + "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", "db.m6i.12xlarge", - "db.r5d.16xlarge", + "db.x2iedn.32xlarge", + "db.r5b.xlarge.tpc2.mem4x", + "db.t4g.medium", + "db.m5d.24xlarge", "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5b.12xlarge", - "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", - "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.t3.xlarge", "db.r4.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", "db.r5d.24xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", + "db.r5b.8xlarge", + "db.m5.24xlarge", + "db.r6i.4xlarge", + "db.t4g.small", + "db.r5b.4xlarge.tpc2.mem4x", + "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", "db.t2.large", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.r3.8xlarge", + "db.m5.16xlarge", "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", "db.m6i.large", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge", + "db.x2idn.32xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.r5b.8xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.x2idn.24xlarge", - "db.r6gd.8xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.m5d.12xlarge", - "db.t2.micro", - "db.x1.32xlarge", - "db.r5b.4xlarge", - "db.r5b.xlarge", - "db.m5d.8xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", "db.m6i.xlarge", - "db.t3.2xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.t2.small", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.r6i.16xlarge", + "db.r5.12xlarge", "db.m6i.16xlarge", - "db.m6g.4xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r5.large.tpc1.mem2x", + "db.r5b.8xlarge.tpc2.mem3x", + "db.r3.xlarge", "db.t3.large", - "db.t2.medium", - "db.r4.8xlarge", + "db.x2iedn.2xlarge", + "db.r5b.2xlarge.tpc2.mem8x", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5d.large", + "db.m5d.large", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.large.tpc1.mem2x", + "db.r5b.24xlarge", + "db.r6i.12xlarge", + "db.r5.8xlarge", "db.r4.large", - "db.t4g.small", - "db.x2iedn.24xlarge", - "db.r3.8xlarge", - "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m5.4xlarge", - "db.r5b.16xlarge", + "db.m5d.4xlarge", "db.m4.2xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" + ] + }, + "ca-west-1": { + "enum": [ + "db.m6gd.large", + "db.r5.large", + "db.r6g.large", + "db.t3.small", + "db.r6id.large", + "db.r6id.32xlarge", + "db.m6id.24xlarge", "db.r5.16xlarge", - "db.r6i.xlarge", - "db.r5b.large", - "db.r5.2xlarge.tpc1.mem2x", - "db.r6g.xlarge", - "db.t2.xlarge", - "db.r5b.24xlarge", - "db.m5.24xlarge", "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.m5d.large", - "db.x2idn.16xlarge", - "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.x2iedn.32xlarge", - "db.m5d.xlarge", - "db.x2idn.32xlarge", - "db.x1.16xlarge", - "db.r5.large.tpc1.mem2x", - "db.t2.small", + "db.r5.4xlarge", + "db.m6g.4xlarge", + "db.serverless", + "db.m6g.large", + "db.r6id.8xlarge", + "db.r6id.24xlarge", + "db.r6id.2xlarge", + "db.r6id.xlarge", + "db.r5.xlarge", "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", + "db.t4g.small", + "db.r6i.large", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6g.xlarge", + "db.m6i.16xlarge", + "db.m6id.16xlarge", + "db.r6i.xlarge", "db.m6g.8xlarge", - "db.m6g.large", - "db.m5d.4xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", + "db.t4g.large", + "db.m6i.8xlarge", + "db.m6i.12xlarge", + "db.r6id.16xlarge", + "db.t4g.medium", + "db.r6id.4xlarge", + "db.m6g.2xlarge", + "db.m6id.large", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.m6g.16xlarge", + "db.m6gd.4xlarge", + "db.m6gd.2xlarge", "db.t3.xlarge", - "db.m5d.2xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r5.12xlarge", + "db.r6i.8xlarge", + "db.r6g.16xlarge", + "db.r6g.8xlarge", + "db.m6i.large", + "db.t3.large", "db.m6i.4xlarge", - "db.r6gd.large", + "db.m6i.24xlarge", + "db.m6gd.12xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.m6id.4xlarge", + "db.m6gd.16xlarge", + "db.m6g.12xlarge", + "db.m6id.2xlarge", + "db.m6id.12xlarge", + "db.m6gd.8xlarge", + "db.m6gd.xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.m6i.xlarge", + "db.m6id.xlarge", + "db.t3.micro", + "db.r6id.12xlarge", + "db.r5.8xlarge", + "db.m6id.8xlarge", "db.r5.24xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", - "db.t3.small", - "db.r6gd.xlarge", - "db.m4.large", - "db.m4.16xlarge", - "db.r3.4xlarge", - "db.t4g.2xlarge", - "db.m5d.16xlarge", - "db.t4g.large", - "db.m5.16xlarge" + "db.t3.medium", + "db.m6id.32xlarge" ] }, "cn-north-1": { "enum": [ - "db.r3.2xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.r5d.16xlarge", - "db.r3.large", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", + "db.m1.small", + "db.r6gd.16xlarge", + "db.r5d.xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.r5d.2xlarge", "db.r5.xlarge", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.m3.2xlarge", - "db.t2.large", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.r6g.16xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r5d.12xlarge", - "db.m5d.12xlarge", + "db.r6i.large", + "db.r3.4xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.r6g.xlarge", "db.x1.32xlarge", - "db.t2.micro", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.x2iedn.16xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.r5.xlarge.tpc2.mem4x", "db.m5d.8xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.r3.8xlarge", + "db.m5d.2xlarge", + "db.m5d.xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6g.8xlarge", - "db.m1.small", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.r4.xlarge", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.m3.large", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.m5d.large", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.t1.micro", - "db.m5d.24xlarge", - "db.m5d.xlarge", - "db.x1.16xlarge", - "db.t2.small", - "db.r5.large.tpc1.mem2x", + "db.r3.large", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5d.24xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", "db.m3.xlarge", - "db.m6g.8xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5d.4xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5d.16xlarge", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", + "db.m5.24xlarge", + "db.t4g.small", + "db.r6i.4xlarge", + "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5.2xlarge.tpc2.mem8x", + "db.m3.medium", + "db.r6i.32xlarge", + "db.r3.8xlarge", + "db.m5.16xlarge", + "db.t1.micro", + "db.r5d.4xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.t2.small", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r5.24xlarge", - "db.t4g.xlarge", - "db.m4.large", - "db.m4.16xlarge", - "db.r3.4xlarge", - "db.m3.medium", - "db.t4g.2xlarge", - "db.t3.small", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r3.xlarge", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.m5d.large", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.r5.8xlarge", + "db.m5d.4xlarge", + "db.m4.2xlarge", + "db.r4.large", + "db.x2iedn.8xlarge" ] }, "cn-northwest-1": { "enum": [ - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.r5d.16xlarge", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.serverless", - "db.r5d.2xlarge", - "db.r5.xlarge", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", - "db.r5d.4xlarge", - "db.r5.8xlarge", "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.r6g.16xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.r5.4xlarge.tpc2.mem3x", + "db.t3.small", "db.r5.6xlarge.tpc2.mem4x", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r5d.12xlarge", - "db.m5d.12xlarge", - "db.t2.micro", + "db.serverless", + "db.r5.xlarge", + "db.r6i.large", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.m4.10xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.r6g.xlarge", "db.x1.32xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.x2iedn.16xlarge", + "db.r5.24xlarge", + "db.t3.medium", "db.m5d.8xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m5d.xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.r5.4xlarge.tpc2.mem3x", + "db.r5.16xlarge", "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6g.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.r4.xlarge", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.r6g.xlarge", - "db.t2.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.m5d.large", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.m5d.xlarge", - "db.x1.16xlarge", - "db.t2.small", - "db.r5.large.tpc1.mem2x", + "db.t3.2xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6g.12xlarge", - "db.m6g.8xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5d.4xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r5.24xlarge", - "db.t4g.xlarge", - "db.t3.small", - "db.m4.large", - "db.m4.16xlarge", - "db.t4g.2xlarge", - "db.m5d.16xlarge", - "db.t4g.large", - "db.m5.16xlarge" - ] - }, - "eu-central-1": { - "enum": [ - "db.x1e.8xlarge", - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", - "db.r5b.6xlarge.tpc2.mem4x", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", + "db.m5.24xlarge", + "db.t4g.small", + "db.r6i.4xlarge", + "db.m5d.12xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.t2.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.t2.small", + "db.r5d.8xlarge", "db.m6i.24xlarge", - "db.z1d.3xlarge", - "db.r5b.2xlarge.tpc1.mem2x", - "db.m6i.12xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.r4.8xlarge", "db.r5d.16xlarge", - "db.r3.large", - "db.r5b.4xlarge.tpc2.mem4x", - "db.r4.xlarge", - "db.r5b.12xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", "db.x2iedn.xlarge", - "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r5b.4xlarge.tpc2.mem2x", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", - "db.x2iedn.8xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5d.large", + "db.m5d.large", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.r4.large", + "db.m5d.4xlarge", + "db.r5.8xlarge", + "db.m4.2xlarge", + "db.x2iedn.8xlarge" + ] + }, + "eu-central-1": { + "enum": [ + "db.r6gd.16xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.m7g.4xlarge", "db.serverless", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", - "db.x1e.4xlarge", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", - "db.m3.2xlarge", + "db.r6id.xlarge", + "db.r6i.large", "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.r5b.4xlarge.tpc2.mem3x", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r5b.xlarge.tpc2.mem4x", - "db.r5b.large.tpc1.mem2x", - "db.r6g.16xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge.tpc2.mem8x", + "db.r3.4xlarge", "db.r5b.2xlarge", - "db.z1d.xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5b.8xlarge", + "db.r7g.16xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.r7g.4xlarge", + "db.m6g.16xlarge", + "db.m4.10xlarge", "db.m6gd.4xlarge", - "db.r5.6xlarge.tpc2.mem4x", - "db.x1e.2xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.x2idn.24xlarge", - "db.r6gd.8xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.r5b.12xlarge.tpc2.mem2x", - "db.m5d.12xlarge", - "db.t2.micro", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m7g.12xlarge", + "db.r7g.2xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.m6id.2xlarge", + "db.m6gd.xlarge", "db.x1.32xlarge", - "db.r5b.4xlarge", - "db.r5b.xlarge", + "db.r6g.xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.r6id.12xlarge", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", "db.m5d.8xlarge", - "db.x1e.32xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", - "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.r5b.8xlarge.tpc2.mem3x", - "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.r3.8xlarge", - "db.x2iedn.24xlarge", - "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m5.4xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m6gd.large", + "db.m5d.xlarge", "db.r5b.16xlarge", - "db.m4.2xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", "db.r5.16xlarge", - "db.r5b.large", + "db.r5.4xlarge.tpc2.mem3x", + "db.r6id.8xlarge", + "db.r7g.8xlarge", + "db.r6id.24xlarge", + "db.m5.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.x1e.4xlarge", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", + "db.m7g.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.r5b.xlarge", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", + "db.r6id.16xlarge", + "db.t4g.medium", + "db.r5b.xlarge.tpc2.mem4x", + "db.m5d.24xlarge", + "db.m3.large", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r5b.24xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.x2idn.16xlarge", - "db.m5d.large", - "db.r6g.2xlarge", - "db.r5b.2xlarge.tpc2.mem4x", + "db.x1e.32xlarge", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.x1e.xlarge", - "db.x2iedn.32xlarge", - "db.m5d.xlarge", - "db.z1d.large", - "db.x2idn.32xlarge", - "db.x1.16xlarge", - "db.t2.small", - "db.m6gd.2xlarge", - "db.r5.large.tpc1.mem2x", + "db.m6id.4xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.m6id.12xlarge", + "db.r7g.xlarge", + "db.t3.2xlarge", + "db.r6i.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5b.12xlarge.tpc2.mem2x", + "db.r5d.24xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", + "db.r6id.32xlarge", + "db.m6id.24xlarge", + "db.x1e.16xlarge", "db.m3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5d.4xlarge", + "db.r5b.8xlarge", + "db.m5.24xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.r6i.4xlarge", + "db.t4g.small", + "db.r7g.12xlarge", + "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r6id.4xlarge", "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.m6i.4xlarge", - "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", + "db.r5b.12xlarge", + "db.m6id.large", + "db.r5.2xlarge.tpc2.mem8x", + "db.m3.medium", + "db.r6i.32xlarge", + "db.x1e.2xlarge", + "db.r3.8xlarge", + "db.m7g.large", + "db.m5.16xlarge", + "db.z1d.xlarge", + "db.m6i.large", + "db.r5d.4xlarge", + "db.x2idn.32xlarge", "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", - "db.t3.small", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", + "db.r7g.large", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.m6id.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.m6id.8xlarge", + "db.t2.small", + "db.r5d.8xlarge", "db.r6gd.xlarge", - "db.m4.large", - "db.r3.4xlarge", - "db.m4.16xlarge", - "db.m3.medium", - "db.t4g.2xlarge", - "db.r5b.xlarge.tpc2.mem2x", - "db.m6gd.16xlarge", - "db.x1e.16xlarge", - "db.m5d.16xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m6id.32xlarge", + "db.m5.2xlarge", + "db.m7g.8xlarge", + "db.m7g.16xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r6id.large", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.m7g.2xlarge", + "db.z1d.6xlarge", + "db.r6id.2xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.z1d.12xlarge", + "db.m6i.16xlarge", + "db.m6id.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r3.xlarge", + "db.r5b.8xlarge.tpc2.mem3x", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.z1d.3xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5b.2xlarge.tpc2.mem8x", + "db.x1e.xlarge", + "db.m6gd.16xlarge", + "db.r5d.large", + "db.m5d.large", + "db.m6gd.8xlarge", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.24xlarge", + "db.r6i.12xlarge", + "db.r5b.large.tpc1.mem2x", + "db.m5d.4xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.m4.2xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "eu-central-2": { "enum": [ - "db.r5.2xlarge", - "db.r5.xlarge", - "db.m5.xlarge", - "db.r5.4xlarge", - "db.t3.micro", - "db.t3.medium", - "db.r5.8xlarge", "db.m5.2xlarge", - "db.m5.12xlarge", - "db.t3.2xlarge", - "db.t3.large", + "db.r5.large", + "db.r6g.large", + "db.t3.small", "db.m5.large", - "db.t3.xlarge", - "db.r5.12xlarge", + "db.r5.16xlarge", + "db.r5.2xlarge", + "db.r5.4xlarge", + "db.m6g.4xlarge", + "db.serverless", "db.m5.8xlarge", - "db.r5.large", - "db.r5.24xlarge", + "db.m6g.large", + "db.r5.xlarge", "db.m5.4xlarge", - "db.r5.16xlarge", - "db.t3.small", "db.m5.24xlarge", - "db.serverless", - "db.m5.16xlarge" + "db.t4g.small", + "db.r6i.large", + "db.r6i.4xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6g.xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.m6g.2xlarge", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r6i.32xlarge", + "db.m6g.16xlarge", + "db.t3.xlarge", + "db.r6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.m5.16xlarge", + "db.t3.large", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.m6g.12xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.t3.2xlarge", + "db.r6i.2xlarge", + "db.t4g.micro", + "db.t3.micro", + "db.r5.8xlarge", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium" ] }, "eu-north-1": { "enum": [ - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.x2iedn.2xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.r6i.16xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r5.2xlarge.tpc2.mem4x", + "db.r6gd.16xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.m6gd.8xlarge", - "db.m6gd.large", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.x2iedn.8xlarge", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", "db.r5.xlarge", + "db.r6i.large", + "db.r5b.2xlarge", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.m6gd.4xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.m5.12xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", + "db.t3.micro", + "db.m5.xlarge", "db.x2iedn.16xlarge", - "db.r5d.24xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.m6g.2xlarge", - "db.r6g.16xlarge", - "db.r6i.2xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m6gd.large", + "db.r5b.16xlarge", + "db.m5d.xlarge", + "db.r6gd.12xlarge", + "db.m5.large", + "db.r5.16xlarge", "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.m6gd.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.x2idn.24xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r5d.12xlarge", - "db.m5d.12xlarge", - "db.m5d.8xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t4g.small", - "db.x2iedn.24xlarge", "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6g.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", + "db.x2iedn.24xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.r5b.xlarge.tpc2.mem4x", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m6i.12xlarge", + "db.m5d.24xlarge", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.x2idn.16xlarge", - "db.r6g.2xlarge", + "db.t3.xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.x2iedn.32xlarge", - "db.m5d.xlarge", - "db.x2idn.32xlarge", - "db.r5.large.tpc1.mem2x", - "db.m6gd.2xlarge", - "db.r6i.4xlarge", + "db.r5b.4xlarge", + "db.t3.2xlarge", + "db.r6i.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5d.4xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r5.24xlarge", + "db.r5b.8xlarge", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.t4g.small", + "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.x2idn.32xlarge", + "db.m6i.large", "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.t3.small", - "db.t4g.2xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m5.2xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.r5b.8xlarge.tpc2.mem3x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5b.2xlarge.tpc2.mem8x", + "db.r5.4xlarge.tpc2.mem4x", "db.m6gd.16xlarge", - "db.m5d.16xlarge", - "db.t4g.large", - "db.m5.16xlarge" + "db.r5d.large", + "db.m6gd.8xlarge", + "db.m5d.large", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.24xlarge", + "db.r5b.large.tpc1.mem2x", + "db.r6i.12xlarge", + "db.r5.8xlarge", + "db.m5d.4xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "eu-south-1": { "enum": [ - "db.x1e.8xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.x2iedn.2xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.z1d.3xlarge", - "db.r6i.16xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r5.2xlarge.tpc2.mem4x", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.x2iedn.8xlarge", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", "db.r5.xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", - "db.x1e.4xlarge", - "db.r5d.24xlarge", + "db.r6i.large", "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.m6g.2xlarge", - "db.r6g.16xlarge", - "db.r6i.2xlarge", + "db.r5b.2xlarge", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", + "db.t3.micro", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", "db.r5.xlarge.tpc2.mem4x", - "db.z1d.xlarge", + "db.m5d.2xlarge", + "db.m5d.xlarge", + "db.r5b.16xlarge", + "db.m5.large", + "db.r5.16xlarge", "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.x1e.2xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.x2idn.24xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r5d.12xlarge", - "db.m5d.12xlarge", - "db.x1.32xlarge", - "db.m5d.8xlarge", - "db.x1e.32xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t4g.small", - "db.x2iedn.24xlarge", "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6g.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", + "db.x2iedn.24xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.z1d.large", + "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.r5b.xlarge.tpc2.mem4x", + "db.x2iedn.32xlarge", + "db.m6i.12xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.x2idn.16xlarge", - "db.r6g.2xlarge", + "db.t3.xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.x1e.xlarge", - "db.m5d.xlarge", - "db.x2iedn.32xlarge", - "db.z1d.large", - "db.x1.16xlarge", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", + "db.r5b.4xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.m6g.8xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5d.4xlarge", - "db.m5d.16xlarge", + "db.r5b.8xlarge", + "db.r6i.4xlarge", + "db.t4g.small", + "db.m5.24xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.m5d.12xlarge", + "db.m6i.8xlarge", "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", + "db.r5b.12xlarge", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.x2idn.32xlarge", + "db.z1d.xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.r5d.8xlarge", + "db.m6i.24xlarge", + "db.m5.2xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.z1d.6xlarge", + "db.r6i.16xlarge", "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", "db.z1d.12xlarge", - "db.r5.24xlarge", - "db.t4g.xlarge", - "db.t3.small", - "db.x1e.16xlarge", - "db.t4g.2xlarge", - "db.x2idn.32xlarge", + "db.m6i.16xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.r5b.8xlarge.tpc2.mem3x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5b.2xlarge.tpc2.mem8x", + "db.r5.4xlarge.tpc2.mem4x", + "db.z1d.3xlarge", + "db.r5d.large", + "db.m5d.large", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.24xlarge", + "db.r6i.12xlarge", + "db.r5b.large.tpc1.mem2x", + "db.r5.8xlarge", + "db.m5d.4xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "eu-south-2": { "enum": [ + "db.m5.2xlarge", + "db.r5.large", + "db.r6g.large", + "db.x2g.12xlarge", + "db.t3.small", + "db.m5.large", + "db.r5.16xlarge", "db.r5.2xlarge", - "db.r5.xlarge", - "db.m5.xlarge", "db.r5.4xlarge", + "db.m6g.4xlarge", + "db.serverless", + "db.m5.8xlarge", + "db.m6g.large", + "db.x2g.4xlarge", + "db.r5.xlarge", + "db.m5.4xlarge", + "db.x2g.16xlarge", + "db.m5.24xlarge", + "db.r6i.large", "db.z1d.2xlarge", - "db.t3.micro", - "db.t3.medium", - "db.r5.8xlarge", - "db.m5.2xlarge", + "db.t4g.small", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.x2g.large", + "db.m6g.xlarge", + "db.r6i.4xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.m6g.2xlarge", + "db.r6g.12xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.r6i.32xlarge", + "db.m6g.16xlarge", + "db.x2g.8xlarge", + "db.t3.xlarge", + "db.r6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.m5.16xlarge", + "db.t3.large", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.x2g.xlarge", + "db.m6g.12xlarge", "db.m5.12xlarge", + "db.r6g.xlarge", + "db.r6i.12xlarge", "db.t3.2xlarge", - "db.r6i.16xlarge", - "db.t3.large", - "db.r5.xlarge.tpc2.mem4x", - "db.m5.large", - "db.t3.xlarge", - "db.r5.12xlarge", - "db.m5.8xlarge", - "db.r5.large", + "db.r6i.2xlarge", + "db.t4g.micro", + "db.t3.micro", + "db.r5.8xlarge", + "db.m5.xlarge", + "db.x2g.2xlarge", + "db.t4g.2xlarge", "db.r5.24xlarge", - "db.m5.4xlarge", - "db.r5.16xlarge", - "db.r5.2xlarge.tpc1.mem2x", - "db.t3.small", - "db.m5.24xlarge", - "db.serverless", - "db.m5.16xlarge" + "db.t3.medium", + "db.r5.xlarge.tpc2.mem4x" ] }, "eu-west-1": { "enum": [ - "db.x1e.8xlarge", - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m1.xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", - "db.r5b.6xlarge.tpc2.mem4x", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.z1d.3xlarge", - "db.r5b.2xlarge.tpc1.mem2x", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.x2iezn.4xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r5b.4xlarge.tpc2.mem4x", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5b.12xlarge", + "db.m1.small", + "db.r6gd.16xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.x2g.8xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r5b.4xlarge.tpc2.mem2x", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", - "db.x2g.16xlarge", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.m7g.4xlarge", "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", + "db.m6idn.24xlarge", "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", - "db.x1e.4xlarge", - "db.m1.large", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", - "db.m3.2xlarge", - "db.x2iezn.6xlarge", - "db.x2iezn.12xlarge", + "db.r6id.xlarge", + "db.r6i.large", "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.r5b.4xlarge.tpc2.mem3x", - "db.x2g.12xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r5b.xlarge.tpc2.mem4x", - "db.r5b.large.tpc1.mem2x", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge.tpc2.mem8x", + "db.r6idn.16xlarge", + "db.r6idn.large", + "db.r3.4xlarge", "db.r5b.2xlarge", - "db.z1d.xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", + "db.m6idn.4xlarge", + "db.r6in.32xlarge", + "db.r7g.16xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.r7g.4xlarge", + "db.m6g.16xlarge", + "db.m4.10xlarge", "db.m6gd.4xlarge", - "db.x2g.large", - "db.x2iezn.2xlarge", - "db.x1e.2xlarge", - "db.r5b.8xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", + "db.r6i.8xlarge", + "db.r6in.xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.m6idn.xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.r6in.large", + "db.x1.16xlarge", "db.x2g.xlarge", - "db.r5d.large", - "db.x2idn.24xlarge", - "db.r6gd.8xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.x2iezn.8xlarge", - "db.r5b.12xlarge.tpc2.mem2x", - "db.x2g.4xlarge", - "db.m5d.12xlarge", - "db.t2.micro", + "db.m7g.12xlarge", + "db.r7g.2xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.m6id.2xlarge", + "db.r6in.24xlarge", + "db.m6gd.xlarge", "db.x1.32xlarge", - "db.r5b.xlarge", - "db.r5b.4xlarge", + "db.r6g.xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.r6id.12xlarge", + "db.x2iezn.2xlarge", + "db.m5.xlarge", + "db.x2g.2xlarge", + "db.t4g.2xlarge", + "db.x2iedn.16xlarge", + "db.x2iezn.12xlarge", + "db.m6in.8xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.r5.xlarge.tpc2.mem4x", "db.m5d.8xlarge", - "db.r6i.large", - "db.x1e.32xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", - "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.r5b.8xlarge.tpc2.mem3x", - "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.m1.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.r3.8xlarge", - "db.x2iedn.24xlarge", - "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m1.small", - "db.m5.4xlarge", - "db.m2.4xlarge", + "db.m5d.2xlarge", + "db.m1.xlarge", + "db.m6gd.large", + "db.m5d.xlarge", + "db.x2g.12xlarge", "db.r5b.16xlarge", - "db.m4.2xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.m6idn.large", "db.r5.16xlarge", - "db.r6i.xlarge", + "db.r6idn.24xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m2.xlarge", + "db.r6in.4xlarge", + "db.r6id.8xlarge", + "db.r7g.8xlarge", + "db.m5.8xlarge", + "db.x2g.4xlarge", + "db.r6id.24xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.r6idn.12xlarge", + "db.x2iedn.24xlarge", + "db.x2iezn.8xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6idn.16xlarge", + "db.x1e.4xlarge", + "db.m4.4xlarge", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", + "db.m7g.xlarge", + "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", "db.m2.2xlarge", - "db.r5b.large", + "db.r5b.xlarge.tpc2.mem4x", + "db.t4g.medium", + "db.r6id.16xlarge", + "db.m5d.24xlarge", + "db.m3.large", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r5b.24xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.r6g.2xlarge", - "db.x2idn.16xlarge", - "db.r5b.2xlarge.tpc2.mem4x", + "db.x2g.8xlarge", + "db.x1e.32xlarge", + "db.t3.xlarge", + "db.m6idn.2xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", + "db.m6id.4xlarge", + "db.r6in.12xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.m6id.12xlarge", + "db.m6in.24xlarge", + "db.m6in.32xlarge", + "db.m6idn.8xlarge", + "db.r6in.2xlarge", + "db.r7g.xlarge", + "db.t3.2xlarge", + "db.r6i.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5b.12xlarge.tpc2.mem2x", + "db.r5d.24xlarge", + "db.m6in.12xlarge", + "db.r6gd.large", + "db.x2iezn.6xlarge", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r6id.32xlarge", + "db.m6id.24xlarge", + "db.x1e.16xlarge", + "db.m3.xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", + "db.r5b.8xlarge", + "db.m5.24xlarge", + "db.t4g.small", + "db.r6i.4xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.x2g.large", + "db.m6idn.32xlarge", + "db.r6idn.2xlarge", + "db.m6in.16xlarge", + "db.r7g.12xlarge", + "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r6idn.8xlarge", + "db.r6id.4xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.m6id.large", + "db.r5.2xlarge.tpc2.mem8x", + "db.m3.medium", + "db.r6i.32xlarge", + "db.x1e.2xlarge", + "db.r3.8xlarge", + "db.m7g.large", + "db.m5.16xlarge", "db.t1.micro", - "db.x1e.xlarge", - "db.x2iedn.32xlarge", - "db.m5d.xlarge", - "db.z1d.large", + "db.r5d.4xlarge", + "db.m6i.large", + "db.z1d.xlarge", "db.x2idn.32xlarge", - "db.x1.16xlarge", + "db.m6gd.12xlarge", + "db.r6g.2xlarge", + "db.m6idn.12xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.r6in.16xlarge", + "db.t2.medium", + "db.r7g.large", + "db.m1.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.m6id.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.m6id.8xlarge", "db.t2.small", - "db.r5.large.tpc1.mem2x", - "db.m2.xlarge", - "db.m6gd.2xlarge", - "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", - "db.m3.xlarge", - "db.m6gd.xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m6g.8xlarge", - "db.m5d.4xlarge", - "db.m5d.16xlarge", - "db.m6g.large", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.m6i.4xlarge", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m6id.32xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.m7g.8xlarge", + "db.m7g.16xlarge", + "db.r6idn.4xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r6id.large", + "db.r5d.16xlarge", + "db.m6in.large", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.m7g.2xlarge", + "db.z1d.6xlarge", + "db.x2g.16xlarge", + "db.r6id.2xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r6idn.xlarge", "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", - "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", - "db.r6gd.xlarge", - "db.m4.large", - "db.r3.4xlarge", - "db.m4.16xlarge", - "db.m3.medium", - "db.t4g.2xlarge", - "db.r5b.xlarge.tpc2.mem2x", - "db.m6gd.16xlarge", - "db.x1e.16xlarge", - "db.t3.small", - "db.x2g.2xlarge", + "db.m6i.16xlarge", + "db.m6id.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" - ] - }, - "eu-west-2": { - "enum": [ - "db.m6i.2xlarge", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m1.large", + "db.m6in.2xlarge", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", "db.r3.2xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", + "db.r3.xlarge", + "db.r5.large.tpc1.mem2x", + "db.m2.4xlarge", + "db.r6idn.32xlarge", + "db.r5b.8xlarge.tpc2.mem3x", + "db.t3.large", "db.x2iedn.2xlarge", - "db.r5b.6xlarge.tpc2.mem4x", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", + "db.r5b.2xlarge.tpc2.mem8x", + "db.r5.4xlarge.tpc2.mem4x", "db.z1d.3xlarge", - "db.r5b.2xlarge.tpc1.mem2x", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r5b.4xlarge.tpc2.mem4x", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5b.12xlarge", - "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", + "db.x1e.xlarge", + "db.m6gd.16xlarge", + "db.m6in.4xlarge", + "db.r5d.large", "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r5b.4xlarge.tpc2.mem2x", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", + "db.m5d.large", + "db.r6in.8xlarge", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.large.tpc1.mem2x", + "db.r6i.12xlarge", + "db.r5b.24xlarge", + "db.m6in.xlarge", + "db.m5d.4xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.x2iezn.4xlarge", + "db.m4.2xlarge", "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" + ] + }, + "eu-west-2": { + "enum": [ + "db.r6gd.16xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", "db.r5.xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", + "db.r6i.large", "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.r5b.4xlarge.tpc2.mem3x", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r5b.xlarge.tpc2.mem4x", - "db.r5b.large.tpc1.mem2x", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge.tpc2.mem8x", "db.r5b.2xlarge", - "db.z1d.xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5b.8xlarge", + "db.r3.4xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.m4.10xlarge", "db.m6gd.4xlarge", - "db.r5.6xlarge.tpc2.mem4x", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.x2idn.24xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r5d.12xlarge", - "db.r5b.12xlarge.tpc2.mem2x", - "db.m5d.12xlarge", - "db.t2.micro", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", "db.x1.32xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.x2iedn.16xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m6gd.large", + "db.r5b.16xlarge", + "db.m5d.xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m5.8xlarge", + "db.r6id.24xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", + "db.r5b.xlarge.tpc2.mem4x", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", "db.r5b.4xlarge", - "db.m5d.8xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", + "db.r3.large", + "db.r6i.2xlarge", "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.r5b.8xlarge.tpc2.mem3x", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5b.12xlarge.tpc2.mem2x", + "db.r5d.24xlarge", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r6id.32xlarge", + "db.r5.2xlarge", "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", + "db.m6g.large", + "db.r5b.8xlarge", + "db.m5.24xlarge", + "db.r6i.4xlarge", "db.t4g.small", - "db.x2iedn.24xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.r6gd.2xlarge", + "db.m5d.12xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", "db.r3.8xlarge", - "db.m5.8xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.z1d.xlarge", + "db.m6gd.12xlarge", + "db.x2idn.32xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.t2.small", "db.r5d.8xlarge", - "db.r6g.8xlarge", - "db.m5.4xlarge", - "db.r5b.16xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", "db.r5b.large", - "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r5b.24xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", "db.x2idn.16xlarge", - "db.m5d.large", - "db.r6g.2xlarge", - "db.r5b.2xlarge.tpc2.mem4x", - "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.m5d.xlarge", - "db.x2iedn.32xlarge", - "db.z1d.large", - "db.x2idn.32xlarge", - "db.x1.16xlarge", - "db.t2.small", - "db.m6gd.2xlarge", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", - "db.m6g.large", - "db.m5d.4xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.z1d.6xlarge", + "db.r6i.16xlarge", "db.r5.12xlarge", - "db.m6i.4xlarge", - "db.r5.4xlarge.tpc2.mem2x", "db.z1d.12xlarge", - "db.r5.24xlarge", - "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.t3.small", - "db.m4.large", - "db.m4.16xlarge", - "db.r3.4xlarge", - "db.t4g.2xlarge", - "db.r5b.xlarge.tpc2.mem2x", - "db.m6gd.16xlarge", - "db.m5d.16xlarge", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r3.xlarge", + "db.r5.large.tpc1.mem2x", + "db.r5b.8xlarge.tpc2.mem3x", + "db.t3.large", + "db.z1d.3xlarge", + "db.r5b.2xlarge.tpc2.mem8x", + "db.x2iedn.2xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.m6gd.16xlarge", + "db.m5d.large", + "db.r5d.large", + "db.m6gd.8xlarge", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.large.tpc1.mem2x", + "db.r6i.12xlarge", + "db.r5b.24xlarge", + "db.r5.8xlarge", + "db.m5d.4xlarge", + "db.m4.2xlarge", + "db.r4.large", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "eu-west-3": { "enum": [ - "db.m6i.2xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", + "db.r6gd.16xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.serverless", + "db.r5.xlarge", + "db.r6i.large", + "db.t2.xlarge", + "db.r6g.12xlarge", "db.m6g.16xlarge", - "db.t4g.medium", "db.m4.10xlarge", - "db.m4.4xlarge", + "db.m6gd.4xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", + "db.x1.32xlarge", + "db.m4.16xlarge", + "db.m4.large", "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.r6i.16xlarge", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.x2iedn.16xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m6gd.large", + "db.m5d.xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m5.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.r4.xlarge", "db.m6i.12xlarge", - "db.r5d.16xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.t3.2xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.t4g.small", + "db.r6gd.2xlarge", + "db.m5d.12xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.m6gd.12xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.t2.small", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.m6gd.16xlarge", + "db.m5d.large", + "db.m6gd.8xlarge", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.m6i.2xlarge", "db.r6i.12xlarge", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", + "db.m5d.4xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.m4.2xlarge", + "db.x2iedn.8xlarge" + ] + }, + "il-central-1": { + "enum": [ + "db.r5d.xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.r5d.2xlarge", "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r6g.16xlarge", - "db.r6i.2xlarge", + "db.r6i.large", + "db.r6g.12xlarge", + "db.r6i.8xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", + "db.t3.micro", + "db.m5.xlarge", + "db.r5.24xlarge", + "db.t3.medium", "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.r6gd.8xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.m5d.12xlarge", - "db.t2.micro", - "db.x1.32xlarge", "db.m5d.8xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", - "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", + "db.m5d.2xlarge", + "db.m5d.xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6i.12xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.r6g.2xlarge", + "db.t3.xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.m5d.xlarge", - "db.x1.16xlarge", - "db.t2.small", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5d.12xlarge", + "db.r5d.24xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.m6g.8xlarge", - "db.m6g.large", - "db.m5d.4xlarge", - "db.m5d.16xlarge", + "db.r5.2xlarge", + "db.m5.24xlarge", + "db.r6i.4xlarge", + "db.m5d.12xlarge", + "db.m6i.8xlarge", "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5d.8xlarge", + "db.m6i.24xlarge", + "db.m5.2xlarge", + "db.r5d.16xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", "db.r5.12xlarge", - "db.m6i.4xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r6gd.large", - "db.r5.24xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", - "db.r6gd.xlarge", - "db.m4.large", - "db.m4.16xlarge", - "db.t4g.2xlarge", - "db.t3.small", + "db.m6i.16xlarge", + "db.r6i.xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.r5.2xlarge.tpc2.mem4x", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.r5.4xlarge.tpc2.mem4x", + "db.m5d.large", + "db.r5d.large", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.m5d.4xlarge", + "db.r5.8xlarge" ] }, "me-central-1": { "enum": [ - "db.r5.2xlarge", - "db.r5d.2xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.t3.small", + "db.serverless", "db.r5.xlarge", - "db.m5d.large", - "db.r5d.large", - "db.m5d.24xlarge", + "db.r6i.large", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.m6i.4xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", + "db.t3.micro", "db.m5.xlarge", - "db.r5.4xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", + "db.m5d.2xlarge", "db.m5d.xlarge", - "db.r5d.24xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.m5.8xlarge", + "db.m5.4xlarge", + "db.m6g.xlarge", + "db.m6i.12xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.t3.xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.r6g.large", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.t4g.small", "db.m5d.12xlarge", + "db.m6i.8xlarge", + "db.r6i.32xlarge", + "db.m5.16xlarge", "db.r5d.4xlarge", - "db.t3.micro", - "db.t3.medium", - "db.r5.8xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5d.8xlarge", + "db.m6i.24xlarge", "db.m5.2xlarge", - "db.m5d.8xlarge", - "db.r5d.xlarge", - "db.m5.12xlarge", - "db.t3.2xlarge", - "db.t3.large", "db.r5d.16xlarge", - "db.m5d.4xlarge", - "db.m5d.16xlarge", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", "db.r5.12xlarge", - "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r5.large", - "db.r5.24xlarge", - "db.m5.4xlarge", - "db.r5.16xlarge", - "db.t3.small", - "db.m5.24xlarge", - "db.serverless", - "db.m5.16xlarge" + "db.m6i.16xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r6g.16xlarge", + "db.t3.large", + "db.m5d.large", + "db.r5d.large", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.r5.8xlarge", + "db.m5d.4xlarge" ] }, "me-south-1": { "enum": [ - "db.r5.2xlarge", - "db.r5d.2xlarge", + "db.r5.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.serverless", "db.r5.xlarge", - "db.r5d.large", - "db.m5d.large", - "db.m5d.24xlarge", - "db.m5.xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.r5.8xlarge.tpc2.mem3x", - "db.m5d.xlarge", + "db.r6i.large", + "db.r6g.12xlarge", "db.m6g.16xlarge", - "db.r5d.24xlarge", - "db.r5d.12xlarge", - "db.r5.large.tpc1.mem2x", - "db.m5d.12xlarge", - "db.r5d.4xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.m5.12xlarge", + "db.r6g.xlarge", "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", "db.t3.medium", - "db.r5.8xlarge", - "db.m5.2xlarge", "db.m5d.8xlarge", - "db.m5.12xlarge", - "db.r5d.xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.m6g.2xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.r5d.16xlarge", - "db.m6g.8xlarge", - "db.m6g.large", - "db.m5d.16xlarge", - "db.m5d.4xlarge", "db.r5.xlarge.tpc2.mem4x", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", "db.m5d.2xlarge", - "db.r5.12xlarge", + "db.m5d.xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", "db.m5.8xlarge", - "db.r5.2xlarge.tpc2.mem4x", "db.r5.4xlarge.tpc2.mem2x", - "db.r5d.8xlarge", - "db.r5.large", - "db.r5.24xlarge", - "db.r5.4xlarge.tpc2.mem3x", "db.m5.4xlarge", + "db.r5.xlarge.tpc2.mem2x", "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.t3.small", - "db.r5.6xlarge.tpc2.mem4x", - "db.r5.16xlarge", + "db.m6i.12xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.r5.xlarge.tpc2.mem2x", - "db.r5.4xlarge", + "db.t3.xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.t3.2xlarge", + "db.r6i.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.r6g.large", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", "db.m5.24xlarge", - "db.serverless", - "db.m5.16xlarge" + "db.r6i.4xlarge", + "db.t4g.small", + "db.m5d.12xlarge", + "db.m6i.8xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.m6g.12xlarge", + "db.r5d.2xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5d.8xlarge", + "db.m6i.24xlarge", + "db.m5.2xlarge", + "db.r5d.16xlarge", + "db.r5.4xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.r6i.xlarge", + "db.m6g.8xlarge", + "db.t4g.large", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5d.large", + "db.m5d.large", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.r5.8xlarge", + "db.m5d.4xlarge" ] }, "sa-east-1": { "enum": [ - "db.m6i.2xlarge", - "db.m1.xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5b.12xlarge", + "db.m1.small", + "db.r6gd.16xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", + "db.r5d.xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.m1.large", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", - "db.m3.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", + "db.r6i.large", + "db.r3.4xlarge", "db.r5b.2xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.r5b.8xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.r6gd.8xlarge", - "db.x2idn.24xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.m5d.12xlarge", - "db.t2.micro", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.r4.2xlarge", + "db.m5.12xlarge", "db.x1.32xlarge", - "db.r5b.4xlarge", - "db.r5b.xlarge", + "db.r6g.xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", "db.m5d.8xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", - "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.m1.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.r3.8xlarge", - "db.x2iedn.24xlarge", - "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m1.small", - "db.m5.4xlarge", - "db.m2.4xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m1.xlarge", + "db.m5d.xlarge", "db.r5b.16xlarge", - "db.m4.2xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", "db.r5.16xlarge", - "db.r6i.xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m2.xlarge", + "db.m5.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.r4.xlarge", + "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.m6i.12xlarge", + "db.r5b.xlarge.tpc2.mem4x", + "db.t4g.medium", + "db.x2iedn.32xlarge", "db.m2.2xlarge", - "db.r5b.large", + "db.m5d.24xlarge", + "db.m3.large", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r6g.xlarge", - "db.r5b.24xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.r6g.2xlarge", - "db.x2idn.16xlarge", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.t1.micro", - "db.m5d.xlarge", - "db.x2iedn.32xlarge", - "db.x2idn.32xlarge", - "db.x1.16xlarge", - "db.t2.small", - "db.m2.xlarge", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", + "db.r5b.4xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5d.24xlarge", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", + "db.r5.2xlarge", "db.m3.xlarge", - "db.m6g.8xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5d.16xlarge", - "db.m5d.4xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.m6i.4xlarge", - "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r6gd.large", - "db.r5.24xlarge", - "db.t4g.xlarge", + "db.r5b.8xlarge", + "db.r6i.4xlarge", + "db.t4g.small", + "db.m5.24xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.m5d.12xlarge", "db.r6gd.2xlarge", - "db.r6gd.xlarge", - "db.m4.large", - "db.m4.16xlarge", - "db.r3.4xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.r5.2xlarge.tpc2.mem8x", "db.m3.medium", - "db.t4g.2xlarge", - "db.t3.small", + "db.r6i.32xlarge", + "db.r3.8xlarge", + "db.m5.16xlarge", + "db.t1.micro", + "db.r5d.4xlarge", + "db.m6i.large", + "db.x2idn.32xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", + "db.m1.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.t2.small", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.r5b.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.x2idn.16xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m1.large", + "db.t2.2xlarge", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.r5b.8xlarge.tpc2.mem3x", + "db.m2.4xlarge", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5b.2xlarge.tpc2.mem8x", + "db.r5.4xlarge.tpc2.mem4x", + "db.m5d.large", + "db.r5d.large", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.24xlarge", + "db.r6i.12xlarge", + "db.r5b.large.tpc1.mem2x", + "db.m5d.4xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.m4.2xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "us-east-1": { "enum": [ - "db.x1e.8xlarge", - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m5.xlarge", - "db.m1.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.x2iedn.2xlarge", - "db.r5b.6xlarge.tpc2.mem4x", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.z1d.3xlarge", - "db.r5b.2xlarge.tpc1.mem2x", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.x2iezn.4xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r5b.4xlarge.tpc2.mem4x", - "db.r4.xlarge", - "db.r5b.12xlarge", - "db.r5.2xlarge.tpc2.mem4x", + "db.m1.small", + "db.r6gd.16xlarge", + "db.r5d.xlarge", "db.r5.large", - "db.x2g.8xlarge", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2iedn.xlarge", - "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r5b.4xlarge.tpc2.mem2x", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", - "db.x2g.16xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.m7g.4xlarge", "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", + "db.m6idn.24xlarge", "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", - "db.x1e.4xlarge", - "db.m1.large", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.m3.2xlarge", - "db.x2iezn.6xlarge", - "db.t2.large", - "db.x2iezn.12xlarge", + "db.r6id.xlarge", + "db.r6i.large", "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.r5b.4xlarge.tpc2.mem3x", - "db.x2g.12xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r5b.xlarge.tpc2.mem4x", - "db.r5b.large.tpc1.mem2x", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge.tpc2.mem8x", + "db.r6idn.16xlarge", + "db.r6idn.large", "db.r5b.2xlarge", - "db.z1d.xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.x2g.large", - "db.r5b.8xlarge", + "db.r3.4xlarge", + "db.r6in.32xlarge", + "db.m6idn.4xlarge", + "db.r7g.16xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.r7g.4xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", "db.m6gd.4xlarge", - "db.r5.6xlarge.tpc2.mem4x", - "db.x1e.2xlarge", + "db.r6i.8xlarge", + "db.r6in.xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.m6idn.xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.r6in.large", + "db.x1.16xlarge", + "db.x2g.xlarge", + "db.m6id.2xlarge", + "db.r7g.2xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.m7g.12xlarge", + "db.r6in.24xlarge", + "db.m6gd.xlarge", + "db.x1.32xlarge", + "db.r6g.xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.r6id.12xlarge", "db.x2iezn.2xlarge", + "db.m5.xlarge", + "db.x2g.2xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.x2iezn.12xlarge", + "db.m6in.8xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m1.xlarge", + "db.m6gd.large", + "db.m5d.xlarge", + "db.r5b.16xlarge", + "db.x2g.12xlarge", + "db.m6idn.large", "db.r4.4xlarge", - "db.r5.4xlarge", - "db.x2g.xlarge", - "db.r5d.large", - "db.r6gd.8xlarge", - "db.x2idn.24xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", + "db.m5.large", "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.x2iezn.8xlarge", - "db.r5b.12xlarge.tpc2.mem2x", + "db.r5.16xlarge", + "db.r6idn.24xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m2.xlarge", + "db.r6in.4xlarge", + "db.r6id.8xlarge", + "db.r7g.8xlarge", + "db.m5.8xlarge", "db.x2g.4xlarge", - "db.m5d.12xlarge", - "db.t2.micro", - "db.x1.32xlarge", - "db.r5b.4xlarge", + "db.r6id.24xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.r6idn.12xlarge", + "db.x2iedn.24xlarge", + "db.x2iezn.8xlarge", + "db.m4.4xlarge", + "db.m6idn.16xlarge", + "db.x1e.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.z1d.large", + "db.m7g.xlarge", + "db.r4.xlarge", "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.m6i.12xlarge", + "db.r6id.16xlarge", + "db.t4g.medium", + "db.x2iedn.32xlarge", + "db.m2.2xlarge", + "db.r5b.xlarge.tpc2.mem4x", + "db.m5d.24xlarge", + "db.m3.large", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.x2g.8xlarge", "db.x1e.32xlarge", - "db.m5d.8xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", + "db.t3.xlarge", + "db.m6idn.2xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.m6id.4xlarge", + "db.r6in.12xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.m6id.12xlarge", + "db.m6idn.8xlarge", + "db.m6in.32xlarge", + "db.m6in.24xlarge", + "db.r6in.2xlarge", + "db.r7g.xlarge", "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.r5b.8xlarge.tpc2.mem3x", + "db.r6i.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5b.12xlarge.tpc2.mem2x", + "db.r5d.24xlarge", + "db.m6in.12xlarge", + "db.r6gd.large", + "db.x2iezn.6xlarge", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r6id.32xlarge", + "db.m6id.24xlarge", + "db.x1e.16xlarge", + "db.r5.2xlarge", + "db.m3.xlarge", "db.m6g.4xlarge", - "db.t3.large", - "db.m1.medium", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", + "db.m6g.large", + "db.r5b.8xlarge", + "db.m5.24xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.r6i.4xlarge", + "db.x2g.large", "db.t4g.small", + "db.m6idn.32xlarge", + "db.r6idn.2xlarge", + "db.r7g.12xlarge", + "db.m5d.12xlarge", + "db.m6in.16xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r6idn.8xlarge", + "db.r6id.4xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.m6id.large", + "db.r5.2xlarge.tpc2.mem8x", + "db.m3.medium", + "db.r6i.32xlarge", + "db.x1e.2xlarge", "db.r3.8xlarge", - "db.x2iedn.24xlarge", - "db.m5.8xlarge", - "db.r5d.8xlarge", + "db.m7g.large", + "db.m5.16xlarge", + "db.t1.micro", + "db.r5d.4xlarge", + "db.x2idn.32xlarge", + "db.m6i.large", + "db.z1d.xlarge", + "db.m6gd.12xlarge", + "db.r6g.2xlarge", + "db.m6idn.12xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m1.small", - "db.m5.4xlarge", - "db.m2.4xlarge", - "db.r5b.16xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", - "db.m2.2xlarge", + "db.r7g.large", + "db.t2.medium", + "db.m1.medium", + "db.r6in.16xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.m6id.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.m6id.8xlarge", + "db.t2.small", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m6id.32xlarge", + "db.m5.2xlarge", + "db.m7g.8xlarge", + "db.m7g.16xlarge", + "db.r6idn.4xlarge", "db.r5b.large", - "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r5b.24xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.m5d.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r6id.large", + "db.r5d.16xlarge", + "db.m6in.large", + "db.x2iedn.xlarge", "db.x2idn.16xlarge", - "db.r5b.2xlarge.tpc2.mem4x", - "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.t1.micro", - "db.x1e.xlarge", - "db.m5d.xlarge", - "db.x2iedn.32xlarge", - "db.z1d.large", - "db.x1.16xlarge", - "db.m6gd.2xlarge", - "db.r5.large.tpc1.mem2x", - "db.t2.small", - "db.m2.xlarge", - "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", - "db.m3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", - "db.m6g.large", - "db.m5d.4xlarge", - "db.m5d.16xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.m7g.2xlarge", + "db.z1d.6xlarge", + "db.r6id.2xlarge", + "db.x2g.16xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r6idn.xlarge", "db.r5.12xlarge", - "db.m6i.4xlarge", - "db.r5.4xlarge.tpc2.mem2x", "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", - "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", - "db.t3.small", - "db.r6gd.xlarge", - "db.m4.large", - "db.r3.4xlarge", - "db.m4.16xlarge", - "db.m3.medium", - "db.t4g.2xlarge", - "db.r5b.xlarge.tpc2.mem2x", - "db.x1e.16xlarge", - "db.m6gd.16xlarge", - "db.x2idn.32xlarge", - "db.x2g.2xlarge", + "db.m6i.16xlarge", + "db.m6id.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" - ] - }, - "us-east-2": { - "enum": [ - "db.x1e.8xlarge", - "db.m6i.2xlarge", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m1.large", + "db.m6in.2xlarge", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", "db.r3.2xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", + "db.r5.large.tpc1.mem2x", + "db.r3.xlarge", + "db.m2.4xlarge", + "db.r6idn.32xlarge", + "db.r5b.8xlarge.tpc2.mem3x", + "db.t3.large", "db.x2iedn.2xlarge", - "db.r5b.6xlarge.tpc2.mem4x", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", + "db.r5b.2xlarge.tpc2.mem8x", + "db.r5.4xlarge.tpc2.mem4x", "db.z1d.3xlarge", - "db.r5b.2xlarge.tpc1.mem2x", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r5b.4xlarge.tpc2.mem4x", - "db.r4.xlarge", - "db.r5b.12xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.x2g.8xlarge", - "db.x2iedn.xlarge", + "db.m6gd.16xlarge", + "db.x1e.xlarge", + "db.m6in.4xlarge", + "db.r5d.large", + "db.m5d.large", "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r5b.4xlarge.tpc2.mem2x", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.x2g.16xlarge", + "db.r6in.8xlarge", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.24xlarge", + "db.r6i.12xlarge", + "db.r5b.large.tpc1.mem2x", + "db.m6in.xlarge", + "db.m5d.4xlarge", + "db.r4.large", + "db.r5.8xlarge", + "db.m4.2xlarge", + "db.x2iezn.4xlarge", "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" + ] + }, + "us-east-2": { + "enum": [ + "db.r6gd.16xlarge", + "db.r5d.xlarge", + "db.r5.large", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.m7g.4xlarge", "db.serverless", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", + "db.m6idn.24xlarge", "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", - "db.x1e.4xlarge", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", + "db.r6id.xlarge", + "db.r6i.large", "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.r5b.4xlarge.tpc2.mem3x", - "db.x2g.12xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r5b.xlarge.tpc2.mem4x", - "db.r6g.16xlarge", - "db.r5b.large.tpc1.mem2x", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge.tpc2.mem8x", + "db.r6idn.16xlarge", + "db.r6idn.large", "db.r5b.2xlarge", - "db.z1d.xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5b.8xlarge", - "db.x2g.large", - "db.r5.6xlarge.tpc2.mem4x", + "db.r3.4xlarge", + "db.m6idn.4xlarge", + "db.r6in.32xlarge", + "db.r7g.16xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.r7g.4xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", "db.m6gd.4xlarge", - "db.x1e.2xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", + "db.r6i.8xlarge", + "db.r6in.xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.m6idn.xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.r6in.large", + "db.x1.16xlarge", "db.x2g.xlarge", - "db.r5d.large", - "db.r6gd.8xlarge", - "db.x2idn.24xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", + "db.m6id.2xlarge", + "db.m7g.12xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.r7g.2xlarge", + "db.r6in.24xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", + "db.x1.32xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.r6id.12xlarge", + "db.x2g.2xlarge", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.m6in.8xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.m5d.8xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m6gd.large", + "db.m5d.xlarge", + "db.x2g.12xlarge", + "db.r5b.16xlarge", "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.r5b.12xlarge.tpc2.mem2x", + "db.r4.4xlarge", + "db.m5.large", + "db.m6idn.large", + "db.r5.16xlarge", + "db.r6idn.24xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.r6in.4xlarge", + "db.r6id.8xlarge", + "db.r7g.8xlarge", + "db.r6id.24xlarge", "db.x2g.4xlarge", - "db.m5d.12xlarge", - "db.t2.micro", - "db.x1.32xlarge", + "db.m5.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.r6idn.12xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.x1e.4xlarge", + "db.m6idn.16xlarge", + "db.m6g.xlarge", + "db.z1d.large", + "db.m7g.xlarge", + "db.r4.xlarge", "db.r5b.xlarge", - "db.r5b.4xlarge", - "db.m5d.8xlarge", - "db.r6i.large", + "db.r5b.6xlarge.tpc2.mem4x", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", + "db.r5b.xlarge.tpc2.mem4x", + "db.r6id.16xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.x2g.8xlarge", "db.x1e.32xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", + "db.t3.xlarge", + "db.m6idn.2xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.m6id.4xlarge", + "db.r6in.12xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.m6id.12xlarge", + "db.m6idn.8xlarge", + "db.m6in.24xlarge", + "db.m6in.32xlarge", + "db.r6in.2xlarge", + "db.r7g.xlarge", + "db.r6i.2xlarge", "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.r5b.8xlarge.tpc2.mem3x", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5b.12xlarge.tpc2.mem2x", + "db.r5d.24xlarge", + "db.m6in.12xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r6id.32xlarge", + "db.m6id.24xlarge", + "db.x1e.16xlarge", + "db.r5.2xlarge", "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", + "db.m6g.large", + "db.r5b.8xlarge", + "db.m5.24xlarge", "db.t4g.small", + "db.r6i.4xlarge", + "db.x2g.large", + "db.r5b.4xlarge.tpc2.mem4x", + "db.m6idn.32xlarge", + "db.r6idn.2xlarge", + "db.r7g.12xlarge", + "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6in.16xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r6idn.8xlarge", + "db.r6id.4xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.m6id.large", + "db.r5.2xlarge.tpc2.mem8x", + "db.r6i.32xlarge", + "db.x1e.2xlarge", "db.r3.8xlarge", - "db.x2iedn.24xlarge", - "db.m5.8xlarge", - "db.r5d.8xlarge", + "db.m7g.large", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.z1d.xlarge", + "db.m6gd.12xlarge", + "db.x2idn.32xlarge", + "db.r6g.2xlarge", + "db.m6idn.12xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m5.4xlarge", - "db.r5b.16xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", + "db.r7g.large", + "db.r6in.16xlarge", + "db.t2.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.m6id.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.m6id.8xlarge", + "db.t2.small", + "db.r5d.8xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m6id.32xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.m7g.8xlarge", + "db.m7g.16xlarge", + "db.r6idn.4xlarge", "db.r5b.large", - "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r5b.24xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.r6g.2xlarge", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r6id.large", + "db.r5d.16xlarge", + "db.m6in.large", + "db.x2iedn.xlarge", "db.x2idn.16xlarge", - "db.m5d.large", - "db.r5b.2xlarge.tpc2.mem4x", - "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.x1e.xlarge", - "db.m5d.xlarge", - "db.x2iedn.32xlarge", - "db.z1d.large", - "db.x2idn.32xlarge", - "db.x1.16xlarge", - "db.r5.large.tpc1.mem2x", - "db.t2.small", - "db.m6gd.2xlarge", - "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", - "db.m6g.large", - "db.m5d.4xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.m6i.4xlarge", - "db.r5.4xlarge.tpc2.mem2x", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.m7g.2xlarge", + "db.z1d.6xlarge", + "db.r6id.2xlarge", + "db.x2g.16xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r6idn.xlarge", "db.r5.12xlarge", "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", - "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", - "db.t3.small", - "db.r6gd.xlarge", - "db.m4.large", - "db.m4.16xlarge", - "db.r3.4xlarge", - "db.x1e.16xlarge", - "db.t4g.2xlarge", - "db.m6gd.16xlarge", - "db.r5b.xlarge.tpc2.mem2x", - "db.m5d.16xlarge", - "db.x2g.2xlarge", + "db.m6i.16xlarge", + "db.m6id.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m6in.2xlarge", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r5.large.tpc1.mem2x", + "db.r3.xlarge", + "db.r5b.8xlarge.tpc2.mem3x", + "db.r6idn.32xlarge", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.z1d.3xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5b.2xlarge.tpc2.mem8x", + "db.x1e.xlarge", + "db.m6gd.16xlarge", + "db.m6in.4xlarge", + "db.r5d.large", + "db.m6gd.8xlarge", + "db.r6in.8xlarge", + "db.m5d.large", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.24xlarge", + "db.r6i.12xlarge", + "db.r5b.large.tpc1.mem2x", + "db.m6in.xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.m5d.4xlarge", + "db.m4.2xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] }, "us-gov-east-1": { "enum": [ - "db.x1e.8xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.t3.micro", - "db.m5.2xlarge", - "db.r6i.16xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r5.2xlarge.tpc2.mem4x", - "db.r4.xlarge", + "db.r5d.xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.r4.2xlarge", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.r5d.2xlarge", "db.r5.xlarge", + "db.r6i.large", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.r4.2xlarge", + "db.m5.12xlarge", + "db.x1.32xlarge", + "db.r6g.xlarge", + "db.t3.micro", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.8xlarge", + "db.m5d.2xlarge", + "db.m5d.xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m5.8xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.x2iedn.24xlarge", + "db.r5.xlarge.tpc2.mem2x", "db.x1e.4xlarge", + "db.m6g.xlarge", + "db.r4.xlarge", + "db.m6i.12xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.x1e.32xlarge", + "db.t3.xlarge", "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.r6g.16xlarge", + "db.m5d.16xlarge", + "db.r6g.4xlarge", + "db.t3.2xlarge", "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.x1e.2xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.r5.4xlarge.tpc2.mem4x", "db.r5d.12xlarge", + "db.t4g.micro", + "db.r5d.24xlarge", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.x1e.16xlarge", + "db.r5.2xlarge", + "db.m6g.4xlarge", + "db.m6g.large", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.t4g.small", "db.m5d.12xlarge", - "db.t2.micro", - "db.x1.32xlarge", - "db.x1e.32xlarge", - "db.r6i.large", - "db.m5d.8xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r5.12xlarge.tpc2.mem2x", "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.m6g.4xlarge", - "db.t3.large", + "db.r6i.32xlarge", + "db.x1e.2xlarge", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.m6g.12xlarge", + "db.r5d.2xlarge", "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.m5.8xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.t2.small", "db.r5d.8xlarge", - "db.r6g.8xlarge", - "db.m5.4xlarge", - "db.r5.16xlarge", + "db.m6i.24xlarge", + "db.m5.2xlarge", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.r5.4xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.t2.micro", "db.r6i.xlarge", - "db.r5.2xlarge.tpc1.mem2x", - "db.r6g.xlarge", - "db.t2.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.m5d.large", - "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.x1e.xlarge", - "db.m5d.xlarge", - "db.x1.16xlarge", - "db.t2.small", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r5.12xlarge.tpc2.mem2x", "db.m6g.8xlarge", - "db.m5d.4xlarge", - "db.m6g.large", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r5.12xlarge", - "db.r5.24xlarge", - "db.t4g.xlarge", - "db.t3.small", - "db.x1e.16xlarge", - "db.t4g.2xlarge", - "db.m5d.16xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.t2.2xlarge", + "db.r6g.16xlarge", + "db.r5.large.tpc1.mem2x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.x1e.xlarge", + "db.m5d.large", + "db.r5d.large", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.r5.8xlarge", + "db.m5d.4xlarge", + "db.r4.large", + "db.x2iedn.8xlarge" ] }, "us-gov-west-1": { "enum": [ - "db.x1e.8xlarge", - "db.r3.2xlarge", - "db.m1.xlarge", - "db.m5.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.r6i.16xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r4.xlarge", - "db.r5.2xlarge.tpc2.mem4x", + "db.m1.small", + "db.r5d.xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.r5d.2xlarge", "db.r5.xlarge", - "db.x1e.4xlarge", - "db.m1.large", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.t2.large", - "db.m3.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", - "db.x1e.2xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.r5.4xlarge.tpc2.mem4x", - "db.r5d.12xlarge", - "db.m5d.12xlarge", - "db.t2.micro", + "db.r6i.large", + "db.r3.4xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.m5.12xlarge", + "db.r4.2xlarge", + "db.r6g.xlarge", "db.x1.32xlarge", - "db.x1e.32xlarge", - "db.r6i.large", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.m5.xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.r5.24xlarge", + "db.t3.medium", "db.m5d.8xlarge", - "db.r5.2xlarge.tpc2.mem8x", - "db.t3.2xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.t2.medium", - "db.m1.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.r3.8xlarge", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.2xlarge", + "db.m1.xlarge", + "db.m5d.xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m2.xlarge", "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6g.8xlarge", - "db.m1.small", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.m2.4xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.x1e.4xlarge", + "db.m6g.xlarge", + "db.r4.xlarge", "db.m2.2xlarge", - "db.r6i.xlarge", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m6i.12xlarge", + "db.m3.large", + "db.m5d.24xlarge", + "db.r6i.24xlarge", "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r6g.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.m5d.large", + "db.x1e.32xlarge", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.t1.micro", - "db.x1e.xlarge", - "db.m5d.xlarge", - "db.x1.16xlarge", - "db.t2.small", - "db.m2.xlarge", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", + "db.r3.large", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5d.24xlarge", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", + "db.x1e.16xlarge", + "db.r5.2xlarge", "db.m3.xlarge", - "db.m6g.8xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5d.4xlarge", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.t4g.small", + "db.m5d.12xlarge", + "db.m6i.8xlarge", + "db.t2.large", "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.r5.12xlarge", - "db.r5.24xlarge", - "db.t4g.xlarge", - "db.t3.small", - "db.m4.large", - "db.r3.4xlarge", - "db.m4.16xlarge", + "db.r5.2xlarge.tpc2.mem8x", "db.m3.medium", - "db.x1e.16xlarge", - "db.t4g.2xlarge", - "db.m5d.16xlarge", + "db.r6i.32xlarge", + "db.x1e.2xlarge", + "db.r3.8xlarge", + "db.m5.16xlarge", + "db.t1.micro", + "db.r5d.4xlarge", + "db.m6i.large", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.t2.medium", + "db.m1.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.t2.small", + "db.r5d.8xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.r5.4xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m1.large", + "db.t2.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r3.xlarge", + "db.r5.large.tpc1.mem2x", + "db.m2.4xlarge", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.x1e.xlarge", + "db.r5d.large", + "db.m5d.large", + "db.m6i.2xlarge", + "db.r6i.12xlarge", + "db.m5d.4xlarge", + "db.r4.large", + "db.m4.2xlarge", + "db.r5.8xlarge", + "db.x2iedn.8xlarge" ] }, "us-west-1": { "enum": [ - "db.m6i.2xlarge", - "db.r3.2xlarge", - "db.m5.xlarge", - "db.m1.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", - "db.z1d.3xlarge", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.r6i.24xlarge", - "db.r6i.12xlarge", - "db.r3.large", - "db.r5.2xlarge.tpc2.mem4x", - "db.r4.xlarge", + "db.m1.small", + "db.r6gd.16xlarge", + "db.r5d.xlarge", "db.r5.large", - "db.m6g.xlarge", - "db.m6g.12xlarge", - "db.m6gd.8xlarge", - "db.r4.2xlarge", - "db.m4.xlarge", - "db.m6gd.large", - "db.r6i.8xlarge", - "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", "db.serverless", - "db.r5d.2xlarge", "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.z1d.6xlarge", - "db.m1.large", - "db.r4.16xlarge", - "db.r5d.24xlarge", - "db.m3.2xlarge", - "db.t2.large", + "db.r6i.large", "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.z1d.xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", - "db.r5.6xlarge.tpc2.mem4x", + "db.r3.4xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", "db.m6gd.4xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.r5d.large", - "db.r6gd.8xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.m5d.12xlarge", + "db.r6i.8xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6i.4xlarge", + "db.x1.16xlarge", + "db.r4.2xlarge", + "db.m5.12xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", "db.x1.32xlarge", - "db.t2.micro", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.m5.xlarge", + "db.t4g.2xlarge", + "db.x2iedn.16xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.r5.xlarge.tpc2.mem4x", "db.m5d.8xlarge", - "db.r6i.large", - "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", - "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.m6g.4xlarge", - "db.t3.large", - "db.m1.medium", - "db.t2.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.r3.8xlarge", + "db.m5d.2xlarge", + "db.m1.xlarge", + "db.m6gd.large", + "db.m5d.xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.r5.16xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m2.xlarge", "db.m5.8xlarge", - "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m1.small", + "db.r5.4xlarge.tpc2.mem2x", "db.m5.4xlarge", - "db.m2.4xlarge", - "db.m4.2xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", + "db.x2iedn.24xlarge", + "db.m4.4xlarge", + "db.r5.xlarge.tpc2.mem2x", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", + "db.m6i.12xlarge", "db.m2.2xlarge", - "db.r5.2xlarge.tpc1.mem2x", - "db.r6g.xlarge", - "db.t2.xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.m5d.large", - "db.r6g.2xlarge", - "db.t1.micro", + "db.t4g.medium", + "db.x2iedn.32xlarge", + "db.m3.large", "db.m5d.24xlarge", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.t3.xlarge", + "db.r4.16xlarge", + "db.m5d.16xlarge", "db.r6g.4xlarge", - "db.m5d.xlarge", - "db.z1d.large", - "db.x1.16xlarge", - "db.t2.small", - "db.m2.xlarge", - "db.r5.large.tpc1.mem2x", - "db.m6gd.2xlarge", - "db.r6i.4xlarge", + "db.r3.large", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5d.12xlarge", + "db.t4g.micro", + "db.m3.2xlarge", + "db.r5d.24xlarge", + "db.r6gd.large", + "db.x2iedn.4xlarge", "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", + "db.r5.2xlarge", "db.m3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", + "db.m6g.4xlarge", "db.m6g.large", - "db.m5d.4xlarge", - "db.m5d.16xlarge", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.t4g.small", + "db.m5d.12xlarge", + "db.r6gd.2xlarge", + "db.m6i.8xlarge", + "db.t2.large", "db.r5.12xlarge.tpc2.mem2x", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", - "db.m6i.4xlarge", - "db.r5.12xlarge", - "db.r5.4xlarge.tpc2.mem2x", - "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", + "db.r5.2xlarge.tpc2.mem8x", + "db.m3.medium", + "db.r6i.32xlarge", + "db.r3.8xlarge", + "db.t1.micro", + "db.m5.16xlarge", + "db.r5d.4xlarge", + "db.z1d.xlarge", + "db.m6i.large", "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", + "db.r6g.2xlarge", + "db.r5d.2xlarge", + "db.m6g.12xlarge", + "db.r6gd.4xlarge", + "db.t2.medium", + "db.m1.medium", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.t2.small", + "db.r5d.8xlarge", "db.r6gd.xlarge", - "db.m4.large", - "db.r3.4xlarge", - "db.m4.16xlarge", - "db.m3.medium", - "db.t4g.2xlarge", - "db.m6gd.16xlarge", - "db.t3.small", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m5.2xlarge", + "db.r4.8xlarge", + "db.r5d.16xlarge", + "db.x2iedn.xlarge", + "db.r5.4xlarge", + "db.z1d.6xlarge", + "db.r6i.16xlarge", + "db.r5.12xlarge", + "db.z1d.12xlarge", + "db.m6i.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" - ] - }, - "us-west-2": { - "enum": [ - "db.x1e.8xlarge", - "db.m6i.2xlarge", + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m1.large", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", "db.r3.2xlarge", - "db.m5.xlarge", - "db.m1.xlarge", - "db.r5.8xlarge.tpc2.mem3x", - "db.m6g.16xlarge", - "db.t4g.medium", - "db.m4.10xlarge", + "db.r3.xlarge", + "db.r5.large.tpc1.mem2x", + "db.m2.4xlarge", + "db.t3.large", "db.x2iedn.2xlarge", - "db.r5b.6xlarge.tpc2.mem4x", - "db.m4.4xlarge", - "db.t3.micro", - "db.m5.2xlarge", - "db.m6i.24xlarge", "db.z1d.3xlarge", - "db.r5b.2xlarge.tpc1.mem2x", - "db.r6i.16xlarge", - "db.m6i.12xlarge", - "db.r5d.16xlarge", - "db.x2iezn.4xlarge", - "db.r6i.24xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.m6gd.16xlarge", + "db.m5d.large", + "db.r5d.large", + "db.m6gd.8xlarge", + "db.r6gd.8xlarge", + "db.m6i.2xlarge", "db.r6i.12xlarge", - "db.r3.large", - "db.r5b.4xlarge.tpc2.mem4x", - "db.r5.2xlarge.tpc2.mem4x", - "db.r5b.12xlarge", - "db.r4.xlarge", + "db.r5.8xlarge", + "db.m5d.4xlarge", + "db.m4.2xlarge", + "db.r4.large", + "db.x2iedn.8xlarge" + ] + }, + "us-west-2": { + "enum": [ + "db.m1.small", + "db.r6gd.16xlarge", + "db.r5d.xlarge", "db.r5.large", - "db.x2g.8xlarge", - "db.m6g.12xlarge", - "db.m6g.xlarge", - "db.x2iedn.xlarge", - "db.m6gd.8xlarge", + "db.t3.small", + "db.r5.6xlarge.tpc2.mem4x", + "db.m7g.4xlarge", + "db.serverless", + "db.m6idn.24xlarge", + "db.r5.xlarge", + "db.r6id.xlarge", + "db.r6i.large", + "db.z1d.2xlarge", + "db.r6idn.16xlarge", + "db.r6idn.large", + "db.r5b.2xlarge", + "db.r3.4xlarge", + "db.r6in.32xlarge", + "db.m6idn.4xlarge", + "db.r7g.16xlarge", + "db.t2.xlarge", + "db.r6g.12xlarge", + "db.r7g.4xlarge", + "db.m4.10xlarge", + "db.m6g.16xlarge", + "db.m6gd.4xlarge", + "db.r6i.8xlarge", + "db.r6in.xlarge", + "db.t4g.xlarge", + "db.r6g.8xlarge", + "db.r5.8xlarge.tpc2.mem3x", + "db.m6idn.xlarge", + "db.m6i.4xlarge", + "db.r6in.large", + "db.x1.16xlarge", + "db.x2g.xlarge", + "db.m6id.2xlarge", + "db.m7g.12xlarge", + "db.m5.12xlarge", + "db.r7g.2xlarge", "db.r4.2xlarge", - "db.m4.xlarge", + "db.r6in.24xlarge", + "db.m6gd.xlarge", + "db.r6g.xlarge", + "db.x1.32xlarge", + "db.m4.16xlarge", + "db.m4.large", + "db.t3.micro", + "db.x2iezn.2xlarge", + "db.r6id.12xlarge", + "db.m5.xlarge", + "db.x2g.2xlarge", + "db.x2iedn.16xlarge", + "db.t4g.2xlarge", + "db.x2iezn.12xlarge", + "db.m6in.8xlarge", + "db.r5.24xlarge", + "db.t3.medium", + "db.r5.xlarge.tpc2.mem4x", + "db.m5d.8xlarge", + "db.m5d.2xlarge", + "db.m1.xlarge", "db.m6gd.large", - "db.r5b.4xlarge.tpc2.mem2x", - "db.r6i.8xlarge", + "db.r5b.16xlarge", + "db.m5d.xlarge", + "db.x2g.12xlarge", + "db.r6gd.12xlarge", + "db.r4.4xlarge", + "db.m5.large", + "db.m6idn.large", + "db.r5.16xlarge", + "db.r6idn.24xlarge", + "db.r5.4xlarge.tpc2.mem3x", + "db.m2.xlarge", + "db.r6in.4xlarge", + "db.r6id.8xlarge", + "db.r7g.8xlarge", + "db.r6id.24xlarge", + "db.m5.8xlarge", + "db.x2g.4xlarge", + "db.r5.4xlarge.tpc2.mem2x", + "db.m5.4xlarge", + "db.r6idn.12xlarge", + "db.x2iedn.24xlarge", + "db.x2iezn.8xlarge", + "db.m4.4xlarge", "db.r5.xlarge.tpc2.mem2x", - "db.m3.large", - "db.x2g.16xlarge", - "db.serverless", - "db.x2iedn.8xlarge", - "db.x2iedn.4xlarge", - "db.r5d.2xlarge", - "db.r5.xlarge", - "db.r6gd.16xlarge", - "db.x2iedn.16xlarge", - "db.z1d.6xlarge", "db.x1e.4xlarge", - "db.m1.large", + "db.m6idn.16xlarge", + "db.m6g.xlarge", + "db.z1d.large", + "db.r4.xlarge", + "db.m7g.xlarge", + "db.r5b.xlarge", + "db.r5b.6xlarge.tpc2.mem4x", + "db.r5b.xlarge.tpc2.mem4x", + "db.x2iedn.32xlarge", + "db.t4g.medium", + "db.m6i.12xlarge", + "db.m2.2xlarge", + "db.r6id.16xlarge", + "db.m5d.24xlarge", + "db.m3.large", + "db.r6i.24xlarge", + "db.r5.2xlarge.tpc1.mem2x", + "db.x2g.8xlarge", + "db.x1e.32xlarge", + "db.t3.xlarge", + "db.m6idn.2xlarge", "db.r4.16xlarge", - "db.r5d.24xlarge", + "db.m5d.16xlarge", + "db.r6in.12xlarge", + "db.m6id.4xlarge", + "db.r6g.4xlarge", + "db.r5b.4xlarge", + "db.r3.large", + "db.m6id.12xlarge", + "db.m6in.24xlarge", + "db.m6idn.8xlarge", + "db.m6in.32xlarge", + "db.r6in.2xlarge", + "db.r7g.xlarge", + "db.r6i.2xlarge", + "db.t3.2xlarge", + "db.r5b.xlarge.tpc2.mem2x", + "db.r5d.12xlarge", + "db.t4g.micro", "db.m3.2xlarge", + "db.r5b.12xlarge.tpc2.mem2x", + "db.r5d.24xlarge", + "db.m6in.12xlarge", + "db.r6gd.large", "db.x2iezn.6xlarge", - "db.t2.large", - "db.x2iezn.12xlarge", - "db.z1d.2xlarge", - "db.r5d.4xlarge", - "db.r5.8xlarge", - "db.r5d.xlarge", - "db.r5b.4xlarge.tpc2.mem3x", - "db.x2g.12xlarge", - "db.t2.2xlarge", - "db.m6g.2xlarge", - "db.m6i.large", - "db.r5b.xlarge.tpc2.mem4x", - "db.r5b.large.tpc1.mem2x", - "db.r6g.16xlarge", - "db.r6i.2xlarge", - "db.r5.xlarge.tpc2.mem4x", - "db.m6i.8xlarge", - "db.r5b.2xlarge.tpc2.mem8x", - "db.r5b.2xlarge", - "db.z1d.xlarge", - "db.m6i.32xlarge", - "db.r5.4xlarge.tpc2.mem3x", + "db.x2iedn.4xlarge", + "db.r6g.large", + "db.r6id.32xlarge", + "db.m6id.24xlarge", + "db.x1e.16xlarge", + "db.r5.2xlarge", + "db.m3.xlarge", + "db.m6g.4xlarge", + "db.m6g.large", "db.r5b.8xlarge", - "db.m6gd.4xlarge", - "db.r5.6xlarge.tpc2.mem4x", + "db.r6i.4xlarge", + "db.m5.24xlarge", + "db.t4g.small", "db.x2g.large", - "db.x1e.2xlarge", - "db.x2iezn.2xlarge", - "db.r4.4xlarge", - "db.r5.4xlarge", - "db.x2g.xlarge", - "db.r5d.large", - "db.x2idn.24xlarge", - "db.r6gd.8xlarge", - "db.r5.4xlarge.tpc2.mem4x", - "db.t4g.micro", - "db.r6gd.12xlarge", - "db.r5d.12xlarge", - "db.x2iezn.8xlarge", - "db.r5b.12xlarge.tpc2.mem2x", - "db.x2g.4xlarge", + "db.r5b.4xlarge.tpc2.mem4x", + "db.m6idn.32xlarge", + "db.r6idn.2xlarge", + "db.r7g.12xlarge", + "db.r6gd.2xlarge", + "db.m6in.16xlarge", "db.m5d.12xlarge", - "db.t2.micro", - "db.x1.32xlarge", - "db.r5b.4xlarge", - "db.r5b.xlarge", - "db.x1e.32xlarge", - "db.r6i.large", - "db.m5d.8xlarge", + "db.m6i.8xlarge", + "db.t2.large", + "db.r6idn.8xlarge", + "db.r6id.4xlarge", + "db.r5.12xlarge.tpc2.mem2x", + "db.r5b.12xlarge", + "db.m6id.large", "db.r5.2xlarge.tpc2.mem8x", - "db.m6i.xlarge", - "db.t3.2xlarge", - "db.m6i.16xlarge", - "db.r5b.8xlarge.tpc2.mem3x", - "db.m6g.4xlarge", - "db.t3.large", + "db.m3.medium", + "db.r6i.32xlarge", + "db.x1e.2xlarge", + "db.r3.8xlarge", + "db.m7g.large", + "db.m5.16xlarge", + "db.t1.micro", + "db.z1d.xlarge", + "db.m6i.large", + "db.r5d.4xlarge", + "db.m6gd.12xlarge", + "db.x2idn.32xlarge", + "db.r6g.2xlarge", + "db.m6idn.12xlarge", + "db.m6g.12xlarge", + "db.r5d.2xlarge", + "db.r6gd.4xlarge", "db.t2.medium", + "db.r6in.16xlarge", + "db.r7g.large", "db.m1.medium", - "db.r4.8xlarge", - "db.r4.large", - "db.t4g.small", - "db.r3.8xlarge", - "db.x2iedn.24xlarge", - "db.m5.8xlarge", + "db.m6i.32xlarge", + "db.m6i.xlarge", + "db.m6id.xlarge", + "db.r5b.2xlarge.tpc1.mem2x", + "db.m6id.8xlarge", + "db.t2.small", "db.r5d.8xlarge", - "db.r6gd.4xlarge", - "db.r6g.8xlarge", - "db.m1.small", - "db.m5.4xlarge", - "db.m2.4xlarge", - "db.r5b.16xlarge", - "db.m4.2xlarge", - "db.m2.2xlarge", - "db.r5.16xlarge", - "db.r6i.xlarge", + "db.r6gd.xlarge", + "db.m6i.24xlarge", + "db.m4.xlarge", + "db.m6id.32xlarge", + "db.m5.2xlarge", + "db.m7g.8xlarge", + "db.m7g.16xlarge", + "db.r6idn.4xlarge", "db.r5b.large", - "db.r5.2xlarge.tpc1.mem2x", - "db.t2.xlarge", - "db.r6g.xlarge", - "db.r5b.24xlarge", - "db.m5.24xlarge", - "db.r5.2xlarge", - "db.r6g.2xlarge", - "db.m5d.large", + "db.r5b.4xlarge.tpc2.mem3x", + "db.r4.8xlarge", + "db.r6id.large", + "db.r5d.16xlarge", + "db.m6in.large", + "db.x2iedn.xlarge", "db.x2idn.16xlarge", - "db.r5b.2xlarge.tpc2.mem4x", - "db.t1.micro", - "db.r6g.4xlarge", - "db.m5d.24xlarge", - "db.x1e.xlarge", - "db.x2iedn.32xlarge", - "db.m5d.xlarge", - "db.z1d.large", - "db.x2idn.32xlarge", - "db.x1.16xlarge", - "db.m6gd.2xlarge", - "db.t2.small", - "db.m2.xlarge", - "db.r5.large.tpc1.mem2x", - "db.r6i.4xlarge", - "db.r6g.large", - "db.t3.medium", - "db.m5.12xlarge", - "db.r6i.32xlarge", - "db.r6g.12xlarge", - "db.r3.xlarge", - "db.m3.xlarge", - "db.m6gd.xlarge", - "db.m6g.8xlarge", - "db.r5.12xlarge.tpc2.mem2x", - "db.m5d.16xlarge", - "db.m5d.4xlarge", - "db.m6g.large", - "db.m5.large", - "db.t3.xlarge", - "db.m5d.2xlarge", + "db.r5.4xlarge", + "db.r5b.4xlarge.tpc2.mem2x", + "db.m7g.2xlarge", + "db.z1d.6xlarge", + "db.r6id.2xlarge", + "db.x2g.16xlarge", + "db.x1e.8xlarge", + "db.r6i.16xlarge", + "db.r6idn.xlarge", "db.r5.12xlarge", - "db.m6i.4xlarge", - "db.r5.4xlarge.tpc2.mem2x", "db.z1d.12xlarge", - "db.r6gd.large", - "db.r5.24xlarge", - "db.m6gd.12xlarge", - "db.t4g.xlarge", - "db.r6gd.2xlarge", - "db.r6gd.xlarge", - "db.m4.large", - "db.r3.4xlarge", - "db.m4.16xlarge", - "db.m3.medium", - "db.t4g.2xlarge", - "db.r5b.xlarge.tpc2.mem2x", - "db.m6gd.16xlarge", - "db.x1e.16xlarge", - "db.t3.small", - "db.x2g.2xlarge", + "db.m6i.16xlarge", + "db.m6id.16xlarge", + "db.t2.micro", + "db.r6i.xlarge", + "db.m6g.8xlarge", "db.t4g.large", - "db.m5.16xlarge" + "db.m6g.2xlarge", + "db.r5.2xlarge.tpc2.mem4x", + "db.m1.large", + "db.m6in.2xlarge", + "db.t2.2xlarge", + "db.m6gd.2xlarge", + "db.r6g.16xlarge", + "db.r3.2xlarge", + "db.r3.xlarge", + "db.r5.large.tpc1.mem2x", + "db.m2.4xlarge", + "db.r6idn.32xlarge", + "db.r5b.8xlarge.tpc2.mem3x", + "db.t3.large", + "db.x2iedn.2xlarge", + "db.z1d.3xlarge", + "db.r5.4xlarge.tpc2.mem4x", + "db.r5b.2xlarge.tpc2.mem8x", + "db.m6gd.16xlarge", + "db.x1e.xlarge", + "db.m6in.4xlarge", + "db.r5d.large", + "db.m6gd.8xlarge", + "db.m5d.large", + "db.r6in.8xlarge", + "db.r6gd.8xlarge", + "db.r5b.2xlarge.tpc2.mem4x", + "db.m6i.2xlarge", + "db.r5b.large.tpc1.mem2x", + "db.r6i.12xlarge", + "db.r5b.24xlarge", + "db.m6in.xlarge", + "db.r5.8xlarge", + "db.r4.large", + "db.m4.2xlarge", + "db.m5d.4xlarge", + "db.x2iezn.4xlarge", + "db.x2iedn.8xlarge", + "db.x2idn.24xlarge" ] } } diff --git a/src/cfnlint/data/schemas/extensions/aws_redshift_cluster/nodetype_enum.json b/src/cfnlint/data/schemas/extensions/aws_redshift_cluster/nodetype_enum.json index ec7f19ba39..d4f23fede4 100644 --- a/src/cfnlint/data/schemas/extensions/aws_redshift_cluster/nodetype_enum.json +++ b/src/cfnlint/data/schemas/extensions/aws_redshift_cluster/nodetype_enum.json @@ -2,378 +2,397 @@ "_description": "Automatically updated using update_specs_from_pricing", "af-south-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds2.8xlarge", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "ap-east-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds2.8xlarge", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "ap-northeast-1": { "enum": [ - "dc2.large", - "dc1.large", "ra3.xlplus", - "ds2.xlarge", - "ds1.xlarge", "ra3.4xlarge", "ds1.8xlarge", - "ds2.8xlarge", + "ds2.xlarge", + "ra3.16xlarge", + "dc1.large", "dc1.8xlarge", + "ds2.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "ds1.xlarge", + "dc2.large" ] }, "ap-northeast-2": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds2.8xlarge", "dc1.8xlarge", + "ra3.16xlarge", + "dc1.large", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "ap-northeast-3": { "enum": [ - "dc2.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds2.8xlarge", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "ap-south-1": { "enum": [ - "dc2.large", - "dc1.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", - "ds2.8xlarge", + "ds2.xlarge", + "ra3.16xlarge", + "dc1.large", "dc1.8xlarge", + "ds2.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "ap-south-2": { "enum": [ + "ra3.xlplus", "ra3.4xlarge", - "dc2.large", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "ap-southeast-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", - "ds1.xlarge", "ra3.4xlarge", "ds1.8xlarge", - "ds2.8xlarge", + "ds2.xlarge", + "ds1.xlarge", + "dc1.large", "dc1.8xlarge", + "ds2.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "ra3.16xlarge", + "dc2.large" ] }, "ap-southeast-2": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", - "ds1.xlarge", "ra3.4xlarge", "ds1.8xlarge", + "ds2.xlarge", + "ds1.xlarge", + "dc1.large", + "ra3.16xlarge", "ds2.8xlarge", - "dc1.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc1.8xlarge", + "dc2.large" ] }, "ap-southeast-3": { "enum": [ + "ra3.xlplus", "ra3.4xlarge", - "dc2.large", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "ap-southeast-4": { "enum": [ - "dc2.large", "ra3.xlplus", "ra3.4xlarge", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "ca-central-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", "ra3.4xlarge", - "ds2.8xlarge", + "ds2.xlarge", + "ra3.16xlarge", "dc1.8xlarge", + "ds2.8xlarge", + "dc1.large", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" + ] + }, + "ca-west-1": { + "enum": [ + "ra3.xlplus", + "ra3.16xlarge", + "ra3.4xlarge" ] }, "cn-north-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", "ra3.4xlarge", - "ds2.8xlarge", + "ds2.xlarge", + "ra3.16xlarge", "dc1.8xlarge", + "ds2.8xlarge", + "dc1.large", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "cn-northwest-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", + "ra3.16xlarge", "ds2.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "eu-central-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", - "ds1.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds1.8xlarge", - "ds2.8xlarge", + "ra3.16xlarge", "dc1.8xlarge", + "ds1.xlarge", + "dc1.large", "dc2.8xlarge", - "ra3.16xlarge" + "ds2.8xlarge", + "dc2.large" ] }, "eu-central-2": { "enum": [ + "ra3.xlplus", "ra3.4xlarge", - "dc2.large", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "eu-north-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", - "ds1.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds1.8xlarge", "ds2.8xlarge", + "dc1.large", + "ra3.16xlarge", "dc1.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "ds1.xlarge", + "dc2.large" ] }, "eu-south-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds2.8xlarge", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "eu-south-2": { "enum": [ + "ra3.xlplus", "ra3.4xlarge", - "dc2.large", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "eu-west-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", - "ds1.xlarge", "ra3.4xlarge", "ds1.8xlarge", + "ds2.xlarge", + "ds1.xlarge", "ds2.8xlarge", - "dc1.8xlarge", + "ra3.16xlarge", + "dc1.large", "dc2.8xlarge", - "ra3.16xlarge" + "dc1.8xlarge", + "dc2.large" ] }, "eu-west-2": { "enum": [ - "dc2.large", - "dc1.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds2.8xlarge", "dc1.8xlarge", + "ra3.16xlarge", + "dc1.large", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "eu-west-3": { "enum": [ - "dc2.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", + "ra3.16xlarge", "ds2.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" + ] + }, + "il-central-1": { + "enum": [ + "ra3.16xlarge", + "ra3.4xlarge", + "ra3.xlplus" ] }, "me-central-1": { "enum": [ + "ra3.xlplus", "ra3.4xlarge", - "dc2.large", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "me-south-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds2.8xlarge", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "sa-east-1": { "enum": [ - "dc2.large", - "dc1.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds2.8xlarge", + "dc1.large", "dc1.8xlarge", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "us-east-1": { "enum": [ - "dc2.large", - "dc1.large", "ra3.xlplus", - "ds2.xlarge", - "ds1.xlarge", "ra3.4xlarge", "ds1.8xlarge", + "ds2.xlarge", "ds2.8xlarge", + "dc1.large", "dc1.8xlarge", + "ra3.16xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "ds1.xlarge", + "dc2.large" ] }, "us-east-2": { "enum": [ - "dc2.large", - "dc1.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", + "ra3.16xlarge", + "dc1.large", "ds2.8xlarge", "dc1.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "us-gov-east-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", + "ra3.16xlarge", "ds2.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "us-gov-west-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", - "ds1.xlarge", "ra3.4xlarge", "ds1.8xlarge", + "ds2.xlarge", "ds2.8xlarge", - "dc1.8xlarge", + "dc1.large", + "ra3.16xlarge", + "ds1.xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc1.8xlarge", + "dc2.large" ] }, "us-west-1": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", "ra3.4xlarge", + "ds2.xlarge", "ds2.8xlarge", + "ra3.16xlarge", + "dc1.large", "dc1.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] }, "us-west-2": { "enum": [ - "dc2.large", "ra3.xlplus", - "dc1.large", - "ds2.xlarge", - "ds1.xlarge", "ra3.4xlarge", "ds1.8xlarge", + "ds2.xlarge", + "ra3.16xlarge", + "dc1.large", "ds2.8xlarge", + "ds1.xlarge", "dc1.8xlarge", "dc2.8xlarge", - "ra3.16xlarge" + "dc2.large" ] } } diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json index 1cc0a0b3de..97f0800f1b 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json @@ -33,7 +33,8 @@ "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage", "NeptuneReaderAverageCPUUtilization", "SageMakerVariantProvisionedConcurrencyUtilization", - "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage" + "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage", + "SageMakerInferenceComponentInvocationsPerCopy" ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_efs_filesystem/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_efs_filesystem/boto.json index 6af6ef5134..37c0c166ed 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_efs_filesystem/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_efs_filesystem/boto.json @@ -8,7 +8,10 @@ "AFTER_30_DAYS", "AFTER_60_DAYS", "AFTER_90_DAYS", - "AFTER_1_DAY" + "AFTER_1_DAY", + "AFTER_180_DAYS", + "AFTER_270_DAYS", + "AFTER_365_DAYS" ] }, { diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_lambda_function/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_lambda_function/boto.json index cb18e41f91..c4b54a8467 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_lambda_function/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_lambda_function/boto.json @@ -36,7 +36,9 @@ "ruby3.2", "python3.11", "nodejs20.x", - "provided.al2023" + "provided.al2023", + "python3.12", + "java21" ] } ] 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 a45e597e92..b09c708539 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -79,6 +79,7 @@ "AWS::NetworkManager::ConnectAttachment", "AWS::S3::AccessGrantsInstance", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", "AWS::AppFlow::ConnectorProfile", @@ -325,6 +326,7 @@ "AWS::Config::ConfigRule", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -413,6 +415,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", "AWS::Glue::Crawler", @@ -701,6 +704,7 @@ "AWS::CloudFront::OriginRequestPolicy", "AWS::DataSync::LocationFSxONTAP", "AWS::NetworkManager::LinkAssociation", + "AWS::Cognito::UserPoolRiskConfigurationAttachment", "AWS::MediaTailor::PlaybackConfiguration", "AWS::PCAConnectorAD::ServicePrincipalName", "AWS::ElasticBeanstalk::Environment", @@ -802,6 +806,7 @@ "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", "aws-appflow-connectorprofile.json", @@ -835,6 +840,7 @@ "aws-msk-cluster.json", "aws-ec2-vpcendpointconnectionnotification.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -875,6 +881,7 @@ "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", + "aws-sagemaker-app.json", "aws-ec2-vpcgatewayattachment.json", "aws-cloudtrail-trail.json", "aws-ec2-vpnconnectionroute.json", @@ -900,6 +907,7 @@ "aws-s3outposts-endpoint.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -916,15 +924,16 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", + "aws-codedeploy-deploymentgroup.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", + "aws-ec2-route.json", "aws-fis-experimenttemplate.json", "aws-cloudformation-hookversion.json", "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-wafv2-loggingconfiguration.json", - "aws-dynamodb-globaltable.json", "aws-backup-backupplan.json", "aws-imagebuilder-distributionconfiguration.json", "aws-lakeformation-permissions.json", @@ -998,6 +1007,7 @@ "aws-logs-querydefinition.json", "aws-iam-instanceprofile.json", "aws-datasync-locationnfs.json", + "aws-sagemaker-domain.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", "aws-sdb-domain.json", @@ -1023,6 +1033,7 @@ "aws-config-configrule.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1052,8 +1063,8 @@ "aws-connect-contactflowmodule.json", "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", - "aws-connect-tasktemplate.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1101,15 +1112,14 @@ "aws-ec2-transitgatewayconnect.json", "aws-networkmanager-sitetositevpnattachment.json", "aws-ec2-securitygroup.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-glue-crawler.json", - "aws-cloudfront-function.json", "aws-apigateway-method.json", "aws-wafregional-regexpatternset.json", "aws-ssm-patchbaseline.json", @@ -1132,6 +1142,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", "aws-servicecatalog-resourceupdateconstraint.json", @@ -1205,10 +1216,8 @@ "aws-iam-userpolicy.json", "aws-connect-viewversion.json", "aws-cloudfront-originaccesscontrol.json", - "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -1267,6 +1276,7 @@ "aws-mediaconnect-flowvpcinterface.json", "aws-glue-workflow.json", "aws-apigatewayv2-authorizer.json", + "aws-sagemaker-userprofile.json", "aws-ec2-prefixlist.json", "aws-ec2-instance.json", "aws-networkmanager-device.json", @@ -1382,6 +1392,7 @@ "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-s3outposts-bucketpolicy.json", "aws-batch-jobqueue.json", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-cognito-userpool.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-cognito-userpool.json new file mode 100644 index 0000000000..eb49ab4a3e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-cognito-userpool.json @@ -0,0 +1,530 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountRecoverySetting": { + "additionalProperties": false, + "properties": { + "RecoveryMechanisms": { + "items": { + "$ref": "#/definitions/RecoveryOption" + }, + "type": "array" + } + }, + "type": "object" + }, + "AdminCreateUserConfig": { + "additionalProperties": false, + "properties": { + "AllowAdminCreateUserOnly": { + "type": "boolean" + }, + "InviteMessageTemplate": { + "$ref": "#/definitions/InviteMessageTemplate" + }, + "UnusedAccountValidityDays": { + "type": "integer" + } + }, + "type": "object" + }, + "CustomEmailSender": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + }, + "LambdaVersion": { + "type": "string" + } + }, + "type": "object" + }, + "CustomSMSSender": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + }, + "LambdaVersion": { + "type": "string" + } + }, + "type": "object" + }, + "DeviceConfiguration": { + "additionalProperties": false, + "properties": { + "ChallengeRequiredOnNewDevice": { + "type": "boolean" + }, + "DeviceOnlyRememberedOnUserPrompt": { + "type": "boolean" + } + }, + "type": "object" + }, + "EmailConfiguration": { + "additionalProperties": false, + "properties": { + "ConfigurationSet": { + "type": "string" + }, + "EmailSendingAccount": { + "type": "string" + }, + "From": { + "type": "string" + }, + "ReplyToEmailAddress": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "type": "object" + }, + "InviteMessageTemplate": { + "additionalProperties": false, + "properties": { + "EmailMessage": { + "type": "string" + }, + "EmailSubject": { + "type": "string" + }, + "SMSMessage": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaConfig": { + "additionalProperties": false, + "properties": { + "CreateAuthChallenge": { + "type": "string" + }, + "CustomEmailSender": { + "$ref": "#/definitions/CustomEmailSender" + }, + "CustomMessage": { + "type": "string" + }, + "CustomSMSSender": { + "$ref": "#/definitions/CustomSMSSender" + }, + "DefineAuthChallenge": { + "type": "string" + }, + "KMSKeyID": { + "type": "string" + }, + "PostAuthentication": { + "type": "string" + }, + "PostConfirmation": { + "type": "string" + }, + "PreAuthentication": { + "type": "string" + }, + "PreSignUp": { + "type": "string" + }, + "PreTokenGeneration": { + "type": "string" + }, + "PreTokenGenerationConfig": { + "$ref": "#/definitions/PreTokenGenerationConfig" + }, + "UserMigration": { + "type": "string" + }, + "VerifyAuthChallengeResponse": { + "type": "string" + } + }, + "type": "object" + }, + "NumberAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "type": "string" + }, + "MinValue": { + "type": "string" + } + }, + "type": "object" + }, + "PasswordPolicy": { + "additionalProperties": false, + "properties": { + "MinimumLength": { + "type": "integer" + }, + "RequireLowercase": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireUppercase": { + "type": "boolean" + }, + "TemporaryPasswordValidityDays": { + "type": "integer" + } + }, + "type": "object" + }, + "Policies": { + "additionalProperties": false, + "properties": { + "PasswordPolicy": { + "$ref": "#/definitions/PasswordPolicy" + } + }, + "type": "object" + }, + "PreTokenGenerationConfig": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + }, + "LambdaVersion": { + "type": "string" + } + }, + "type": "object" + }, + "RecoveryOption": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Priority": { + "type": "integer" + } + }, + "type": "object" + }, + "SchemaAttribute": { + "additionalProperties": false, + "properties": { + "AttributeDataType": { + "type": "string" + }, + "DeveloperOnlyAttribute": { + "type": "boolean" + }, + "Mutable": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "NumberAttributeConstraints": { + "$ref": "#/definitions/NumberAttributeConstraints" + }, + "Required": { + "type": "boolean" + }, + "StringAttributeConstraints": { + "$ref": "#/definitions/StringAttributeConstraints" + } + }, + "type": "object" + }, + "SmsConfiguration": { + "additionalProperties": false, + "properties": { + "ExternalId": { + "type": "string" + }, + "SnsCallerArn": { + "type": "string" + }, + "SnsRegion": { + "type": "string" + } + }, + "type": "object" + }, + "StringAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxLength": { + "type": "string" + }, + "MinLength": { + "type": "string" + } + }, + "type": "object" + }, + "UserAttributeUpdateSettings": { + "additionalProperties": false, + "properties": { + "AttributesRequireVerificationBeforeUpdate": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AttributesRequireVerificationBeforeUpdate" + ], + "type": "object" + }, + "UserPoolAddOns": { + "additionalProperties": false, + "properties": { + "AdvancedSecurityMode": { + "type": "string" + } + }, + "type": "object" + }, + "UsernameConfiguration": { + "additionalProperties": false, + "properties": { + "CaseSensitive": { + "type": "boolean" + } + }, + "type": "object" + }, + "VerificationMessageTemplate": { + "additionalProperties": false, + "properties": { + "DefaultEmailOption": { + "type": "string" + }, + "EmailMessage": { + "type": "string" + }, + "EmailMessageByLink": { + "type": "string" + }, + "EmailSubject": { + "type": "string" + }, + "EmailSubjectByLink": { + "type": "string" + }, + "SmsMessage": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Cognito::UserPool", + "handlers": { + "create": { + "permissions": [ + "cognito-idp:CreateUserPool", + "iam:PassRole", + "cognito-idp:SetUserPoolMfaConfig", + "cognito-idp:DescribeUserPool", + "kms:CreateGrant", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2 + }, + "delete": { + "permissions": [ + "cognito-idp:DeleteUserPool" + ], + "timeoutInMinutes": 2 + }, + "list": { + "permissions": [ + "cognito-idp:ListUserPools" + ] + }, + "read": { + "permissions": [ + "cognito-idp:DescribeUserPool" + ] + }, + "update": { + "permissions": [ + "cognito-idp:UpdateUserPool", + "cognito-idp:ListTagsForResource", + "cognito-idp:UntagResource", + "cognito-idp:TagResource", + "cognito-idp:SetUserPoolMfaConfig", + "cognito-idp:AddCustomAttributes", + "cognito-idp:DescribeUserPool", + "iam:PassRole" + ], + "timeoutInMinutes": 2 + } + }, + "primaryIdentifier": [ + "/properties/UserPoolId" + ], + "properties": { + "AccountRecoverySetting": { + "$ref": "#/definitions/AccountRecoverySetting" + }, + "AdminCreateUserConfig": { + "$ref": "#/definitions/AdminCreateUserConfig" + }, + "AliasAttributes": { + "items": { + "enum": [ + "phone_number", + "email", + "preferred_username" + ], + "type": "string" + }, + "type": "array" + }, + "Arn": { + "type": "string" + }, + "AutoVerifiedAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeletionProtection": { + "type": "string" + }, + "DeviceConfiguration": { + "$ref": "#/definitions/DeviceConfiguration" + }, + "EmailConfiguration": { + "$ref": "#/definitions/EmailConfiguration" + }, + "EmailVerificationMessage": { + "maxLength": 20000, + "minLength": 6, + "type": "string" + }, + "EmailVerificationSubject": { + "maxLength": 140, + "minLength": 1, + "type": "string" + }, + "EnabledMfas": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LambdaConfig": { + "$ref": "#/definitions/LambdaConfig" + }, + "MfaConfiguration": { + "enum": [ + "OFF", + "ON", + "OPTIONAL" + ], + "type": "string" + }, + "Policies": { + "$ref": "#/definitions/Policies" + }, + "ProviderName": { + "type": "string" + }, + "ProviderURL": { + "type": "string" + }, + "Schema": { + "items": { + "$ref": "#/definitions/SchemaAttribute" + }, + "type": "array" + }, + "SmsAuthenticationMessage": { + "maxLength": 140, + "minLength": 6, + "type": "string" + }, + "SmsConfiguration": { + "$ref": "#/definitions/SmsConfiguration" + }, + "SmsVerificationMessage": { + "maxLength": 140, + "minLength": 6, + "type": "string" + }, + "UserAttributeUpdateSettings": { + "$ref": "#/definitions/UserAttributeUpdateSettings" + }, + "UserPoolAddOns": { + "$ref": "#/definitions/UserPoolAddOns" + }, + "UserPoolId": { + "type": "string" + }, + "UserPoolName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "UserPoolTags": { + "additionalProperties": false, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$": { + "type": "string" + } + }, + "type": "object" + }, + "UsernameAttributes": { + "items": { + "enum": [ + "phone_number", + "email" + ], + "type": "string" + }, + "type": "array" + }, + "UsernameConfiguration": { + "$ref": "#/definitions/UsernameConfiguration" + }, + "VerificationMessageTemplate": { + "$ref": "#/definitions/VerificationMessageTemplate" + } + }, + "propertyTransform": { + "/properties/Schema/*/Name": "'custom:' & '' & Name" + }, + "readOnlyProperties": [ + "/properties/ProviderName", + "/properties/UserPoolId", + "/properties/ProviderURL", + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/UserPoolTags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Cognito::UserPool", + "writeOnlyProperties": [ + "/properties/EnabledMfas" + ] +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-cognito-userpoolriskconfigurationattachment.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-cognito-userpoolriskconfigurationattachment.json new file mode 100644 index 0000000000..229426c5ae --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-cognito-userpoolriskconfigurationattachment.json @@ -0,0 +1,215 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/UserPoolId", + "/properties/ClientId" + ], + "definitions": { + "AccountTakeoverActionType": { + "additionalProperties": false, + "properties": { + "EventAction": { + "type": "string" + }, + "Notify": { + "type": "boolean" + } + }, + "required": [ + "EventAction", + "Notify" + ], + "type": "object" + }, + "AccountTakeoverActionsType": { + "additionalProperties": false, + "properties": { + "HighAction": { + "$ref": "#/definitions/AccountTakeoverActionType" + }, + "LowAction": { + "$ref": "#/definitions/AccountTakeoverActionType" + }, + "MediumAction": { + "$ref": "#/definitions/AccountTakeoverActionType" + } + }, + "type": "object" + }, + "AccountTakeoverRiskConfigurationType": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AccountTakeoverActionsType" + }, + "NotifyConfiguration": { + "$ref": "#/definitions/NotifyConfigurationType" + } + }, + "required": [ + "Actions" + ], + "type": "object" + }, + "CompromisedCredentialsActionsType": { + "additionalProperties": false, + "properties": { + "EventAction": { + "type": "string" + } + }, + "required": [ + "EventAction" + ], + "type": "object" + }, + "CompromisedCredentialsRiskConfigurationType": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/CompromisedCredentialsActionsType" + }, + "EventFilter": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Actions" + ], + "type": "object" + }, + "NotifyConfigurationType": { + "additionalProperties": false, + "properties": { + "BlockEmail": { + "$ref": "#/definitions/NotifyEmailType" + }, + "From": { + "type": "string" + }, + "MfaEmail": { + "$ref": "#/definitions/NotifyEmailType" + }, + "NoActionEmail": { + "$ref": "#/definitions/NotifyEmailType" + }, + "ReplyTo": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "required": [ + "SourceArn" + ], + "type": "object" + }, + "NotifyEmailType": { + "additionalProperties": false, + "properties": { + "HtmlBody": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "TextBody": { + "type": "string" + } + }, + "required": [ + "Subject" + ], + "type": "object" + }, + "RiskExceptionConfigurationType": { + "additionalProperties": false, + "properties": { + "BlockedIPRangeList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SkippedIPRangeList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Cognito::UserPoolRiskConfigurationAttachment", + "handlers": { + "create": { + "permissions": [ + "cognito-idp:SetRiskConfiguration", + "cognito-idp:DescribeRiskConfiguration", + "iam:PassRole" + ], + "timeoutInMinutes": 2 + }, + "delete": { + "permissions": [ + "cognito-idp:SetRiskConfiguration", + "cognito-idp:DescribeRiskConfiguration" + ], + "timeoutInMinutes": 2 + }, + "read": { + "permissions": [ + "cognito-idp:DescribeRiskConfiguration" + ] + }, + "update": { + "permissions": [ + "cognito-idp:SetRiskConfiguration", + "cognito-idp:DescribeRiskConfiguration", + "iam:PassRole" + ], + "timeoutInMinutes": 2 + } + }, + "primaryIdentifier": [ + "/properties/UserPoolId", + "/properties/ClientId" + ], + "properties": { + "AccountTakeoverRiskConfiguration": { + "$ref": "#/definitions/AccountTakeoverRiskConfigurationType" + }, + "ClientId": { + "type": "string" + }, + "CompromisedCredentialsRiskConfiguration": { + "$ref": "#/definitions/CompromisedCredentialsRiskConfigurationType" + }, + "RiskExceptionConfiguration": { + "$ref": "#/definitions/RiskExceptionConfigurationType" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "UserPoolId", + "ClientId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Cognito::UserPoolRiskConfigurationAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-connect-tasktemplate.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-connect-tasktemplate.json new file mode 100644 index 0000000000..76188374c0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-connect-tasktemplate.json @@ -0,0 +1,314 @@ +{ + "additionalProperties": false, + "definitions": { + "ClientToken": { + "description": "the client token string in uuid format", + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", + "type": "string" + }, + "DefaultFieldValue": { + "additionalProperties": false, + "description": "the default value for the task template's field", + "properties": { + "DefaultValue": { + "$ref": "#/definitions/FieldValue" + }, + "Id": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "Id", + "DefaultValue" + ], + "type": "object" + }, + "Field": { + "additionalProperties": false, + "description": "A task template field object.", + "properties": { + "Description": { + "description": "The description of the task template's field", + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "Id": { + "$ref": "#/definitions/FieldIdentifier" + }, + "SingleSelectOptions": { + "description": "list of field options to be used with single select", + "items": { + "$ref": "#/definitions/FieldOption" + }, + "maxItems": 50, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FieldType" + } + }, + "required": [ + "Id", + "Type" + ], + "type": "object" + }, + "FieldIdentifier": { + "additionalProperties": false, + "description": "the identifier (name) for the task template field", + "properties": { + "Name": { + "description": "The name of the task template field", + "maxLength": 100, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FieldOption": { + "description": "Single select field identifier", + "maxLength": 100, + "minLength": 1, + "pattern": "^[A-Za-z0-9](?:[A-Za-z0-9_.,\\s-]*[A-Za-z0-9_.,-])?$", + "type": "string" + }, + "FieldType": { + "description": "The type of the task template's field", + "enum": [ + "NAME", + "DESCRIPTION", + "SCHEDULED_TIME", + "QUICK_CONNECT", + "URL", + "NUMBER", + "TEXT", + "TEXT_AREA", + "DATE_TIME", + "BOOLEAN", + "SINGLE_SELECT", + "EMAIL" + ], + "type": "string" + }, + "FieldValue": { + "description": "the default value for the task template's field", + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "InvisibleFieldInfo": { + "additionalProperties": false, + "description": "Invisible field info", + "properties": { + "Id": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "InvisibleTaskTemplateFields": { + "description": "The list of the task template's invisible fields", + "items": { + "$ref": "#/definitions/InvisibleFieldInfo" + }, + "maxItems": 50, + "type": "array" + }, + "ReadOnlyFieldInfo": { + "additionalProperties": false, + "description": "ReadOnly field info", + "properties": { + "Id": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "ReadOnlyTaskTemplateFields": { + "description": "The list of the task template's read only fields", + "items": { + "$ref": "#/definitions/ReadOnlyFieldInfo" + }, + "maxItems": 50, + "type": "array" + }, + "RequiredFieldInfo": { + "additionalProperties": false, + "description": "Required field info", + "properties": { + "Id": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "RequiredTaskTemplateFields": { + "description": "The list of the task template's required fields", + "items": { + "$ref": "#/definitions/RequiredFieldInfo" + }, + "maxItems": 50, + "type": "array" + }, + "Status": { + "description": "The status of the task template", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. . You can specify a value that is maximum of 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Connect::TaskTemplate.", + "handlers": { + "create": { + "permissions": [ + "connect:CreateTaskTemplate", + "connect:TagResource" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteTaskTemplate", + "connect:UntagResource" + ] + }, + "read": { + "permissions": [ + "connect:GetTaskTemplate" + ] + }, + "update": { + "permissions": [ + "connect:UpdateTaskTemplate", + "connect:TagResource", + "connect:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The identifier (arn) of the task template.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/task-template/[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$", + "type": "string" + }, + "ClientToken": { + "$ref": "#/definitions/ClientToken" + }, + "Constraints": { + "additionalProperties": false, + "description": "The constraints for the task template", + "properties": { + "InvisibleFields": { + "$ref": "#/definitions/InvisibleTaskTemplateFields" + }, + "ReadOnlyFields": { + "$ref": "#/definitions/ReadOnlyTaskTemplateFields" + }, + "RequiredFields": { + "$ref": "#/definitions/RequiredTaskTemplateFields" + } + }, + "type": "object" + }, + "ContactFlowArn": { + "description": "The identifier of the contact flow.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Defaults": { + "description": "", + "items": { + "$ref": "#/definitions/DefaultFieldValue" + }, + "maxItems": 50, + "type": "array" + }, + "Description": { + "description": "The description of the task template.", + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "Fields": { + "description": "The list of task template's fields", + "items": { + "$ref": "#/definitions/Field" + }, + "maxItems": 50, + "type": "array" + }, + "InstanceArn": { + "description": "The identifier (arn) of the instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Name": { + "description": "The name of the task template.", + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/Status" + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "InstanceArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "typeName": "AWS::Connect::TaskTemplate" +} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-route.json deleted file mode 100644 index 722dba73ff..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-ec2-route.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RouteTableId", - "/properties/DestinationCidrBlock", - "/properties/DestinationIpv6CidrBlock", - "/properties/DestinationPrefixListId" - ], - "description": "Resource Type definition for AWS::EC2::Route", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteRoute", - "ec2:DescribeRouteTables" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "RouteTableId": { - "$ref": "resource-schema.json#/properties/RouteTableId" - } - }, - "required": [ - "RouteTableId" - ] - }, - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - } - }, - "primaryIdentifier": [ - "/properties/RouteTableId", - "/properties/CidrBlock" - ], - "properties": { - "CarrierGatewayId": { - "description": "The ID of the carrier gateway.", - "type": "string" - }, - "CidrBlock": { - "description": "The primary identifier of the resource generated by the service.", - "type": "string" - }, - "DestinationCidrBlock": { - "description": "The IPv4 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "description": "The IPv6 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationPrefixListId": { - "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "description": "The ID of the egress-only internet gateway.", - "type": "string" - }, - "GatewayId": { - "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", - "type": "string" - }, - "InstanceId": { - "description": "The ID of a NAT instance in your VPC.", - "type": "string" - }, - "LocalGatewayId": { - "description": "The ID of the local gateway.", - "type": "string" - }, - "NatGatewayId": { - "description": "The ID of a NAT gateway.", - "type": "string" - }, - "NetworkInterfaceId": { - "description": "The ID of the network interface.", - "type": "string" - }, - "RouteTableId": { - "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", - "type": "string" - }, - "TransitGatewayId": { - "description": "The ID of a transit gateway.", - "type": "string" - }, - "VpcEndpointId": { - "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", - "type": "string" - }, - "VpcPeeringConnectionId": { - "description": "The ID of a VPC peering connection.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CidrBlock" - ], - "required": [ - "RouteTableId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", - "tagging": { - "taggable": false - }, - "typeName": "AWS::EC2::Route" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-networkfirewall-firewallpolicy.json similarity index 96% rename from src/cfnlint/data/schemas/providers/ap_southeast_2/aws-networkfirewall-firewallpolicy.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-networkfirewall-firewallpolicy.json index b3671e5883..663e175b39 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-networkfirewall-firewallpolicy.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-networkfirewall-firewallpolicy.json @@ -109,9 +109,6 @@ }, "type": "array", "uniqueItems": false - }, - "TLSInspectionConfigurationArn": { - "$ref": "#/definitions/ResourceArn" } }, "required": [ @@ -282,7 +279,6 @@ "permissions": [ "network-firewall:CreateFirewallPolicy", "network-firewall:DescribeFirewallPolicy", - "network-firewall:ListTLSInspectionConfigurations", "network-firewall:TagResource", "network-firewall:ListRuleGroups" ] @@ -311,8 +307,7 @@ "network-firewall:DescribeFirewallPolicy", "network-firewall:TagResource", "network-firewall:UntagResource", - "network-firewall:ListRuleGroups", - "network-firewall:ListTLSInspectionConfigurations" + "network-firewall:ListRuleGroups" ] } }, diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json deleted file mode 100644 index da6e3f4330..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-app.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AppName", - "/properties/AppType", - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/Tags", - "/properties/ResourceSpec" - ], - "definitions": { - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "SageMakerImageArn": { - "description": "The ARN of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "minLength": 1, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The ARN of the image version created on the instance.", - "maxLength": 256, - "minLength": 1, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "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" - } - }, - "description": "Resource Type definition for AWS::SageMaker::App", - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:DescribeApp" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteApp" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListApps" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeApp" - ] - } - }, - "primaryIdentifier": [ - "/properties/AppName", - "/properties/AppType", - "/properties/DomainId", - "/properties/UserProfileName" - ], - "properties": { - "AppArn": { - "description": "The Amazon Resource Name (ARN) of the app.", - "maxLength": 256, - "minLength": 1, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", - "type": "string" - }, - "AppName": { - "description": "The name of the app.", - "maxLength": 63, - "minLength": 1, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "AppType": { - "description": "The type of app.", - "enum": [ - "JupyterServer", - "KernelGateway", - "RStudioServerPro", - "RSessionGateway", - "Canvas" - ], - "type": "string" - }, - "DomainId": { - "description": "The domain ID.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "ResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance." - }, - "Tags": { - "description": "A list of tags to apply to the app.", - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileName": { - "description": "The user profile name.", - "maxLength": 63, - "minLength": 1, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AppArn" - ], - "required": [ - "AppName", - "AppType", - "DomainId", - "UserProfileName" - ], - "typeName": "AWS::SageMaker::App", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json deleted file mode 100644 index 1948e2768f..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json +++ /dev/null @@ -1,575 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AppNetworkAccessType", - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/SubnetIds", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CustomImage": { - "additionalProperties": false, - "description": "A custom SageMaker image.", - "properties": { - "AppImageConfigName": { - "description": "The Name of the AppImageConfig.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "description": "The name of the CustomImage. Must be unique to your account.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "description": "The version number of the CustomImage.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", - "properties": { - "ExecutionRole": { - "description": "The execution role for the space.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DomainSettings": { - "additionalProperties": false, - "description": "A collection of Domain settings.", - "properties": { - "RStudioServerProDomainSettings": { - "$ref": "#/definitions/RStudioServerProDomainSettings" - }, - "SecurityGroupIds": { - "description": "The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 3, - "minItems": 1, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "description": "The JupyterServer app settings.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "description": "The kernel gateway app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." - } - }, - "type": "object" - }, - "RSessionAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to an RSessionGateway app.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", - "properties": { - "AccessStatus": { - "description": "Indicates whether the current user has access to the RStudioServerPro app.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "RStudioServerProDomainSettings": { - "additionalProperties": false, - "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "DomainExecutionRoleArn": { - "description": "The ARN of the execution role for the RStudioServerPro Domain-level app.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "RStudioConnectUrl": { - "description": "A URL pointing to an RStudio Connect server.", - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - }, - "RStudioPackageManagerUrl": { - "description": "A URL pointing to an RStudio Package Manager server.", - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - } - }, - "required": [ - "DomainExecutionRoleArn" - ], - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "LifecycleConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "SageMakerImageArn": { - "description": "The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The Amazon Resource Name (ARN) of the image version created on the instance.", - "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, - "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", - "properties": { - "NotebookOutputOption": { - "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "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" - }, - "UserSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", - "properties": { - "ExecutionRole": { - "description": "The execution role for the user.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "RSessionAppSettings": { - "$ref": "#/definitions/RSessionAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings", - "description": "The sharing settings." - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SageMaker::Domain", - "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": { - "description": "Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.", - "enum": [ - "PublicInternetOnly", - "VpcOnly" - ], - "type": "string" - }, - "AppSecurityGroupManagement": { - "description": "The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.", - "enum": [ - "Service", - "Customer" - ], - "type": "string" - }, - "AuthMode": { - "description": "The mode of authentication that members use to access the domain.", - "enum": [ - "SSO", - "IAM" - ], - "type": "string" - }, - "DefaultSpaceSettings": { - "$ref": "#/definitions/DefaultSpaceSettings", - "description": "The default space settings." - }, - "DefaultUserSettings": { - "$ref": "#/definitions/UserSettings", - "description": "The default user settings." - }, - "DomainArn": { - "description": "The Amazon Resource Name (ARN) of the created domain.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", - "type": "string" - }, - "DomainId": { - "description": "The domain name.", - "maxLength": 63, - "pattern": "^d-(-*[a-z0-9])+", - "type": "string" - }, - "DomainName": { - "description": "A name for the domain.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "DomainSettings": { - "$ref": "#/definitions/DomainSettings" - }, - "HomeEfsFileSystemId": { - "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.", - "maxLength": 32, - "type": "string" - }, - "KmsKeyId": { - "description": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "SecurityGroupIdForDomainBoundary": { - "description": "The ID of the security group that authorizes traffic between the RSessionGateway apps and the RStudioServerPro app.", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "SingleSignOnManagedApplicationInstanceId": { - "description": "The SSO managed application instance ID.", - "maxLength": 256, - "type": "string" - }, - "SubnetIds": { - "description": "The VPC subnets that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "description": "A list of tags to apply to the user profile.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "Url": { - "description": "The URL to the created domain.", - "maxLength": 1024, - "type": "string" - }, - "VpcId": { - "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/DomainArn", - "/properties/Url", - "/properties/DomainId", - "/properties/HomeEfsFileSystemId", - "/properties/SecurityGroupIdForDomainBoundary", - "/properties/SingleSignOnManagedApplicationInstanceId" - ], - "required": [ - "AuthMode", - "DefaultUserSettings", - "DomainName", - "SubnetIds", - "VpcId" - ], - "typeName": "AWS::SageMaker::Domain", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json deleted file mode 100644 index 8d20becfab..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json +++ /dev/null @@ -1,368 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/SingleSignOnUserIdentifier", - "/properties/SingleSignOnUserValue", - "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", - "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", - "/properties/Tags" - ], - "definitions": { - "CustomImage": { - "additionalProperties": false, - "description": "A custom SageMaker image.", - "properties": { - "AppImageConfigName": { - "description": "The Name of the AppImageConfig.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "description": "The name of the CustomImage. Must be unique to your account.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "description": "The version number of the CustomImage.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "description": "The JupyterServer app settings.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "description": "The kernel gateway app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", - "properties": { - "AccessStatus": { - "description": "Indicates whether the current user has access to the RStudioServerPro app.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "SageMakerImageArn": { - "description": "The ARN of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The ARN of the image version created on the instance.", - "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, - "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", - "properties": { - "NotebookOutputOption": { - "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "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" - }, - "UserSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", - "properties": { - "ExecutionRole": { - "description": "The user profile Amazon Resource Name (ARN).", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings", - "description": "The sharing settings." - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SageMaker::UserProfile", - "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": { - "description": "The ID of the associated Domain.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "SingleSignOnUserIdentifier": { - "description": "A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is \"UserName\". If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified.", - "pattern": "UserName", - "type": "string" - }, - "SingleSignOnUserValue": { - "description": "The username of the associated AWS Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified.", - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "description": "A list of tags to apply to the user profile.", - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileArn": { - "description": "The user profile Amazon Resource Name (ARN).", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", - "type": "string" - }, - "UserProfileName": { - "description": "A name for the UserProfile.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "UserSettings": { - "$ref": "#/definitions/UserSettings", - "description": "A collection of settings.", - "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/af_south_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-hub.json deleted file mode 100644 index b0401a5225..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-securityhub-hub.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "additionalProperties": false, - "description": "Resource Type definition for AWS::SecurityHub::Hub", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutoEnableControls": { - "type": "boolean" - }, - "ControlFindingGenerator": { - "type": "string" - }, - "EnableDefaultStandards": { - "type": "boolean" - }, - "Id": { - "type": "string" - }, - "Tags": { - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecurityHub::Hub" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} 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 e2c2bb80a7..dfeb6e5aa8 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -82,6 +82,7 @@ "AWS::Macie::CustomDataIdentifier", "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", "AWS::OpsWorks::Layer", @@ -423,6 +424,7 @@ "AWS::OpsWorks::Volume", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", "AWS::Glue::Crawler", @@ -594,6 +596,7 @@ "AWS::RDS::DBClusterParameterGroup", "AWS::WAF::XssMatchSet", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::Scheduler::ScheduleGroup", "AWS::FSx::Snapshot", "AWS::EventSchemas::RegistryPolicy", @@ -821,6 +824,7 @@ "aws-macie-customdataidentifier.json", "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", "aws-opsworks-layer.json", @@ -854,6 +858,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -927,6 +932,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -942,6 +948,7 @@ "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", "aws-ec2-route.json", @@ -1056,6 +1063,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1083,6 +1091,7 @@ "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1091,7 +1100,6 @@ "aws-iam-grouppolicy.json", "aws-scheduler-schedule.json", "aws-waf-bytematchset.json", - "aws-emrserverless-application.json", "aws-ec2-host.json", "aws-lambda-codesigningconfig.json", "aws-systemsmanagersap-application.json", @@ -1131,14 +1139,13 @@ "aws-globalaccelerator-endpointgroup.json", "aws-ec2-transitgatewayconnect.json", "aws-ec2-securitygroup.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-glue-crawler.json", - "aws-cloudfront-function.json", "aws-apigateway-method.json", "aws-wafregional-regexpatternset.json", "aws-ssm-patchbaseline.json", @@ -1161,6 +1168,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-servicecatalog-resourceupdateconstraint.json", @@ -1240,7 +1248,6 @@ "aws-iot-mitigationaction.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -1290,6 +1297,7 @@ "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-scheduler-schedulegroup.json", "aws-fsx-snapshot.json", "aws-eventschemas-registrypolicy.json", @@ -1419,6 +1427,7 @@ "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-s3outposts-bucketpolicy.json", "aws-batch-jobqueue.json", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-emrserverless-application.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-emrserverless-application.json new file mode 100644 index 0000000000..b2cb33ba91 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-emrserverless-application.json @@ -0,0 +1,553 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Architecture", + "/properties/ReleaseLabel", + "/properties/WorkerTypeSpecifications", + "/properties/MaximumCapacity", + "/properties/InitialCapacity", + "/properties/AutoStartConfiguration", + "/properties/AutoStopConfiguration", + "/properties/NetworkConfiguration", + "/properties/ImageConfiguration", + "/properties/MonitoringConfiguration", + "/properties/RuntimeConfiguration" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type" + ], + "definitions": { + "Architecture": { + "description": "The cpu architecture of an application.", + "enum": [ + "ARM64", + "X86_64" + ], + "type": "string" + }, + "AutoStartConfiguration": { + "additionalProperties": false, + "description": "Configuration for Auto Start of Application", + "properties": { + "Enabled": { + "default": true, + "description": "If set to true, the Application will automatically start. Defaults to true.", + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "AutoStopConfiguration": { + "additionalProperties": false, + "description": "Configuration for Auto Stop of Application", + "properties": { + "Enabled": { + "default": true, + "description": "If set to true, the Application will automatically stop after being idle. Defaults to true.", + "type": "boolean" + }, + "IdleTimeoutMinutes": { + "description": "The amount of time [in minutes] to wait before auto stopping the Application when idle. Defaults to 15 minutes.", + "type": "integer" + } + }, + "required": [], + "type": "object" + }, + "Classification": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "ConfigurationList": { + "description": "Runtime configuration for batch and interactive JobRun.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ConfigurationObject" + }, + "type": "array", + "uniqueItems": true + }, + "ConfigurationObject": { + "additionalProperties": false, + "description": "Configuration for a JobRun.", + "properties": { + "Classification": { + "$ref": "#/definitions/Classification", + "description": "String with a maximum length of 1024." + }, + "Configurations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ConfigurationObject" + }, + "type": "array", + "uniqueItems": true + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z]+[-a-zA-Z0-9_.]*$": { + "$ref": "#/definitions/SensitivePropertiesMap" + } + }, + "type": "object" + } + }, + "required": [ + "Classification" + ], + "type": "object" + }, + "CpuSize": { + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(vCPU|vcpu|VCPU)?$", + "type": "string" + }, + "DiskSize": { + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)$", + "type": "string" + }, + "EncryptionKeyArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):kms:[a-zA-Z0-9\\-]*:(\\d{12})?:key\\/[a-zA-Z0-9-]+$", + "type": "string" + }, + "ImageConfigurationInput": { + "additionalProperties": false, + "description": "The image configuration.", + "properties": { + "ImageUri": { + "description": "The URI of an image in the Amazon ECR registry. This field is required when you create a new application. If you leave this field blank in an update, Amazon EMR will remove the image configuration.", + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-z0-9]+[a-z0-9-.]*)\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(?:\\:([a-zA-Z0-9_][a-zA-Z0-9-._]{0,299})|@(sha256:[0-9a-f]{64}))$", + "type": "string" + } + }, + "type": "object" + }, + "InitialCapacityConfig": { + "additionalProperties": false, + "properties": { + "WorkerConfiguration": { + "$ref": "#/definitions/WorkerConfiguration" + }, + "WorkerCount": { + "description": "Initial count of workers to be initialized when an Application is started. This count will be continued to be maintained until the Application is stopped", + "format": "int64", + "maximum": 1000000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "WorkerCount", + "WorkerConfiguration" + ], + "type": "object" + }, + "InitialCapacityConfigKeyValuePair": { + "additionalProperties": false, + "properties": { + "Key": { + "description": "Worker type for an analytics framework.", + "maxLength": 50, + "minLength": 1, + "pattern": "^[a-zA-Z]+[-_]*[a-zA-Z]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/InitialCapacityConfig" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "InitialCapacityConfigMap": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InitialCapacityConfigKeyValuePair" + }, + "type": "array", + "uniqueItems": true + }, + "ManagedPersistenceMonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "default": true, + "description": "If set to false, managed logging will be turned off. Defaults to true.", + "type": "boolean" + }, + "EncryptionKeyArn": { + "$ref": "#/definitions/EncryptionKeyArn", + "description": "KMS key ARN to encrypt the logs stored in managed persistence" + } + } + }, + "MaximumAllowedResources": { + "additionalProperties": false, + "properties": { + "Cpu": { + "$ref": "#/definitions/CpuSize", + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional." + }, + "Disk": { + "$ref": "#/definitions/DiskSize", + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional" + }, + "Memory": { + "$ref": "#/definitions/MemorySize", + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional." + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "MemorySize": { + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)?$", + "type": "string" + }, + "MonitoringConfiguration": { + "additionalProperties": false, + "description": "Monitoring configuration for batch and interactive JobRun.", + "properties": { + "ManagedPersistenceMonitoringConfiguration": { + "$ref": "#/definitions/ManagedPersistenceMonitoringConfiguration", + "description": "Managed log persistence configurations for a JobRun." + }, + "S3MonitoringConfiguration": { + "$ref": "#/definitions/S3MonitoringConfiguration", + "description": "S3 monitoring configurations for a JobRun." + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "description": "The ID of the security groups in the VPC to which you want to connect your job or application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "description": "The ID of the subnets in the VPC to which you want to connect your job or application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [], + "type": "object" + }, + "S3MonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionKeyArn": { + "$ref": "#/definitions/EncryptionKeyArn", + "description": "KMS key ARN to encrypt the logs stored in given s3" + }, + "LogUri": { + "$ref": "#/definitions/UriString" + } + } + }, + "SecurityGroupId": { + "description": "Identifier of a security group", + "maxLength": 32, + "minLength": 1, + "pattern": "^[-0-9a-zA-Z]+", + "type": "string" + }, + "SensitivePropertiesKeyValuePair": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SensitivePropertiesMap": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SubnetId": { + "description": "Identifier of a subnet", + "maxLength": 32, + "minLength": 1, + "pattern": "^[-0-9a-zA-Z]+", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The value for the tag. You can specify a value that is 1 to 128 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9 /_.:=+@-]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 /_.:=+@-]*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UriString": { + "maxLength": 10280, + "minLength": 1, + "pattern": "[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\r\\n\\t]*", + "type": "string" + }, + "WorkerConfiguration": { + "additionalProperties": false, + "properties": { + "Cpu": { + "$ref": "#/definitions/CpuSize", + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional." + }, + "Disk": { + "$ref": "#/definitions/DiskSize", + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional" + }, + "Memory": { + "$ref": "#/definitions/MemorySize", + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional." + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "WorkerTypeSpecificationInput": { + "additionalProperties": false, + "description": "The specifications for a worker type.", + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/ImageConfigurationInput" + } + }, + "type": "object" + }, + "WorkerTypeSpecificationInputMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z]+[-_]*[a-zA-Z]+$": { + "$ref": "#/definitions/WorkerTypeSpecificationInput" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::EMRServerless::Application Type", + "handlers": { + "create": { + "permissions": [ + "kms:Create*", + "kms:Describe*", + "kms:Enable*", + "kms:List*", + "kms:Put*", + "kms:Update*", + "kms:Revoke*", + "kms:Disable*", + "kms:Get*", + "kms:Delete*", + "kms:ScheduleKeyDeletion", + "kms:CancelKeyDeletion", + "kms:GenerateDataKey", + "kms:TagResource", + "kms:UntagResource", + "kms:Decrypt", + "emr-serverless:CreateApplication", + "emr-serverless:TagResource", + "emr-serverless:GetApplication", + "iam:CreateServiceLinkedRole", + "ec2:CreateNetworkInterface", + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetDownloadUrlForLayer" + ] + }, + "delete": { + "permissions": [ + "emr-serverless:DeleteApplication", + "emr-serverless:GetApplication" + ] + }, + "list": { + "permissions": [ + "emr-serverless:ListApplications" + ] + }, + "read": { + "permissions": [ + "emr-serverless:GetApplication" + ] + }, + "update": { + "permissions": [ + "emr-serverless:UpdateApplication", + "emr-serverless:TagResource", + "emr-serverless:UntagResource", + "emr-serverless:GetApplication", + "ec2:CreateNetworkInterface", + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetDownloadUrlForLayer", + "kms:Create*", + "kms:Describe*", + "kms:Enable*", + "kms:List*", + "kms:Put*", + "kms:Update*", + "kms:Revoke*", + "kms:Disable*", + "kms:Get*", + "kms:Delete*", + "kms:ScheduleKeyDeletion", + "kms:CancelKeyDeletion", + "kms:GenerateDataKey", + "kms:TagResource", + "kms:UntagResource", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApplicationId" + ], + "properties": { + "ApplicationId": { + "description": "The ID of the EMR Serverless Application.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Architecture": { + "$ref": "#/definitions/Architecture" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the EMR Serverless Application.", + "type": "string" + }, + "AutoStartConfiguration": { + "$ref": "#/definitions/AutoStartConfiguration", + "description": "Configuration for Auto Start of Application." + }, + "AutoStopConfiguration": { + "$ref": "#/definitions/AutoStopConfiguration", + "description": "Configuration for Auto Stop of Application." + }, + "ImageConfiguration": { + "$ref": "#/definitions/ImageConfigurationInput" + }, + "InitialCapacity": { + "$ref": "#/definitions/InitialCapacityConfigMap", + "description": "Initial capacity initialized when an Application is started." + }, + "MaximumCapacity": { + "$ref": "#/definitions/MaximumAllowedResources", + "description": "Maximum allowed cumulative resources for an Application. No new resources will be created once the limit is hit." + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/MonitoringConfiguration" + }, + "Name": { + "description": "User friendly Application name.", + "maxLength": 64, + "minLength": 1, + "pattern": "^[A-Za-z0-9._\\/#-]+$", + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration", + "description": "Network Configuration for customer VPC connectivity." + }, + "ReleaseLabel": { + "description": "EMR release label.", + "maxLength": 64, + "minLength": 1, + "pattern": "^[A-Za-z0-9._/-]+$", + "type": "string" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/ConfigurationList" + }, + "Tags": { + "description": "Tag map with key and value", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "description": "The type of the application", + "type": "string" + }, + "WorkerTypeSpecifications": { + "$ref": "#/definitions/WorkerTypeSpecificationInputMap", + "description": "The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types." + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ApplicationId" + ], + "required": [ + "ReleaseLabel", + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "taggable": true + }, + "typeName": "AWS::EMRServerless::Application" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-image.json deleted file mode 100644 index 223d64e03e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/Workflows", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 3cf9b2a4a9..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-hub.json deleted file mode 100644 index b0401a5225..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-securityhub-hub.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "additionalProperties": false, - "description": "Resource Type definition for AWS::SecurityHub::Hub", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutoEnableControls": { - "type": "boolean" - }, - "ControlFindingGenerator": { - "type": "string" - }, - "EnableDefaultStandards": { - "type": "boolean" - }, - "Id": { - "type": "string" - }, - "Tags": { - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecurityHub::Hub" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} 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 2c877a2e07..0353ae4d27 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -119,6 +119,7 @@ "AWS::Route53::RecordSet", "AWS::MediaStore::Container", "AWS::IoTAnalytics::Datastore", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::IVS::StreamKey", "AWS::ElastiCache::SecurityGroup", @@ -408,6 +409,7 @@ "AWS::AppStream::ImageBuilder", "AWS::BackupGateway::Hypervisor", "AWS::Lightsail::Disk", + "AWS::Connect::PredefinedAttribute", "AWS::IAM::Policy", "AWS::DataBrew::Schedule", "AWS::AppRunner::Service", @@ -423,6 +425,7 @@ "AWS::RoboMaker::Fleet", "AWS::EC2::VolumeAttachment", "AWS::Glue::SecurityConfiguration", + "AWS::NetworkFirewall::TLSInspectionConfiguration", "AWS::OpenSearchServerless::Collection", "AWS::DataBrew::Ruleset", "AWS::GameLift::MatchmakingConfiguration", @@ -619,6 +622,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::GameLift::GameSessionQueue", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", @@ -884,6 +888,7 @@ "AWS::WAF::XssMatchSet", "AWS::EC2::VerifiedAccessTrustProvider", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::Pinpoint::EmailTemplate", "AWS::MediaLive::Multiplex", "AWS::Scheduler::ScheduleGroup", @@ -1165,7 +1170,6 @@ "aws-appconfig-extensionassociation.json", "aws-vpclattice-service.json", "aws-s3outposts-accesspoint.json", - "aws-mediapackage-originendpoint.json", "aws-ec2-ipampoolcidr.json", "aws-iot-topicruledestination.json", "aws-amplify-branch.json", @@ -1190,6 +1194,7 @@ "aws-robomaker-simulationapplicationversion.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-transfer-certificate.json", + "aws-pinpoint-gcmchannel.json", "aws-connect-instance.json", "aws-apigateway-documentationpart.json", "aws-cloudwatch-compositealarm.json", @@ -1236,6 +1241,7 @@ "aws-route53-recordset.json", "aws-mediastore-container.json", "aws-iotanalytics-datastore.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-ivs-streamkey.json", "aws-elasticache-securitygroup.json", @@ -1283,7 +1289,6 @@ "aws-docdb-dbinstance.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", - "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-appstream-appblockbuilder.json", @@ -1291,11 +1296,11 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", "aws-rekognition-streamprocessor.json", - "aws-location-placeindex.json", "aws-route53resolver-resolverruleassociation.json", "aws-fsx-storagevirtualmachine.json", "aws-greengrass-connectordefinitionversion.json", @@ -1377,7 +1382,6 @@ "aws-ssm-document.json", "aws-iam-role.json", "aws-dms-endpoint.json", - "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", @@ -1401,6 +1405,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1425,8 +1430,8 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", - "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", @@ -1503,7 +1508,6 @@ "aws-sagemaker-imageversion.json", "aws-apigatewayv2-api.json", "aws-detective-graph.json", - "aws-location-routecalculator.json", "aws-servicecatalog-portfolioshare.json", "aws-apigateway-vpclink.json", "aws-connect-integrationassociation.json", @@ -1536,6 +1540,7 @@ "aws-robomaker-fleet.json", "aws-ec2-volumeattachment.json", "aws-glue-securityconfiguration.json", + "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-opensearchserverless-collection.json", "aws-databrew-ruleset.json", "aws-gamelift-matchmakingconfiguration.json", @@ -1608,10 +1613,10 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", - "aws-location-map.json", "aws-acmpca-certificateauthorityactivation.json", "aws-msk-serverlesscluster.json", "aws-guardduty-threatintelset.json", @@ -1726,6 +1731,7 @@ "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-gamelift-gamesessionqueue.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", @@ -1766,6 +1772,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1806,7 +1813,6 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", - "aws-iotsitewise-gateway.json", "aws-emr-studiosessionmapping.json", "aws-ivs-playbackkeypair.json", "aws-cloudformation-macro.json", @@ -1901,6 +1907,7 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", + "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-athena-capacityreservation.json", @@ -1936,7 +1943,6 @@ "aws-cognito-userpoolidentityprovider.json", "aws-appstream-stackuserassociation.json", "aws-resiliencehub-resiliencypolicy.json", - "aws-location-tracker.json", "aws-iot-dimension.json", "aws-logs-loggroup.json", "aws-evidently-experiment.json", @@ -1985,6 +1991,7 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", @@ -2107,7 +2114,6 @@ "aws-apigatewayv2-routeresponse.json", "aws-cloudwatch-metricstream.json", "aws-dms-dataprovider.json", - "aws-location-geofencecollection.json", "aws-ssm-parameter.json", "aws-apigatewayv2-apigatewaymanagedoverrides.json", "aws-config-deliverychannel.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-predefinedattribute.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-predefinedattribute.json new file mode 100644 index 0000000000..0c16367e0b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-predefinedattribute.json @@ -0,0 +1,100 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceArn", + "/properties/Name" + ], + "definitions": { + "StringList": { + "description": "Predefined attribute values of type string list.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Value" + }, + "maxItems": 128, + "minItems": 1, + "type": "array" + }, + "Value": { + "description": "Textual or numeric value that describes an attribute.", + "maxLength": 64, + "minLength": 1, + "type": "string" + } + }, + "description": "Resource Type definition for AWS::Connect::PredefinedAttribute", + "handlers": { + "create": { + "permissions": [ + "connect:CreatePredefinedAttribute" + ] + }, + "delete": { + "permissions": [ + "connect:DeletePredefinedAttribute" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListPredefinedAttributes" + ] + }, + "read": { + "permissions": [ + "connect:DescribePredefinedAttribute" + ] + }, + "update": { + "permissions": [ + "connect:UpdatePredefinedAttribute" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceArn", + "/properties/Name" + ], + "properties": { + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Name": { + "description": "The name of the predefined attribute.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Values": { + "additionalProperties": false, + "description": "The values of a predefined attribute.", + "properties": { + "StringList": { + "$ref": "#/definitions/StringList" + } + }, + "type": "object" + } + }, + "required": [ + "InstanceArn", + "Name", + "Values" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Connect::PredefinedAttribute" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-user.json index b949608f4f..546e21910e 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-user.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-connect-user.json @@ -6,6 +6,18 @@ "minimum": 0, "type": "integer" }, + "AttributeName": { + "description": "The name of user's proficiency. You must use name of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "description": "The value of user's proficiency. You must use value of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, "AutoAccept": { "description": "The Auto accept setting.", "type": "boolean" @@ -26,6 +38,12 @@ "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", "type": "string" }, + "Level": { + "description": "The level of the proficiency. The valid values are 1, 2, 3, 4 and 5.", + "maximum": 5.0, + "minimum": 1.0, + "type": "number" + }, "Mobile": { "description": "The mobile phone number.", "pattern": "^\\+[1-9]\\d{1,14}$", @@ -115,6 +133,27 @@ "PhoneType" ], "type": "object" + }, + "UserProficiency": { + "additionalProperties": false, + "description": "Proficiency of a user.", + "properties": { + "AttributeName": { + "$ref": "#/definitions/AttributeName" + }, + "AttributeValue": { + "$ref": "#/definitions/AttributeValue" + }, + "Level": { + "$ref": "#/definitions/Level" + } + }, + "required": [ + "AttributeName", + "AttributeValue", + "Level" + ], + "type": "object" } }, "description": "Resource Type definition for AWS::Connect::User", @@ -215,6 +254,14 @@ "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", "type": "string" }, + "UserProficiencies": { + "description": "One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/UserProficiency" + }, + "type": "array" + }, "Username": { "description": "The user name for the account.", "maxLength": 64, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-image.json deleted file mode 100644 index 223d64e03e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/Workflows", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 3cf9b2a4a9..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-workflow.json deleted file mode 100644 index 5c25c2361b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-imagebuilder-workflow.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Version", - "/properties/ChangeDescription", - "/properties/Description", - "/properties/Data", - "/properties/Uri", - "/properties/Type", - "/properties/KmsKeyId", - "/properties/Tags" - ], - "description": "Resource schema for AWS::ImageBuilder::Workflow", - "handlers": { - "create": { - "permissions": [ - "iam:GetRole", - "kms:GenerateDataKey*", - "kms:Encrypt", - "kms:Decrypt", - "s3:GetObject", - "s3:HeadBucket", - "s3:GetBucketLocation", - "imagebuilder:TagResource", - "imagebuilder:GetWorkflow", - "imagebuilder:CreateWorkflow" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:GetWorkflow", - "imagebuilder:UnTagResource", - "imagebuilder:DeleteWorkflow" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Data" - ] - }, - { - "required": [ - "Uri" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the workflow.", - "type": "string" - }, - "ChangeDescription": { - "description": "The change description of the workflow.", - "type": "string" - }, - "Data": { - "description": "The data of the workflow.", - "maxLength": 16000, - "minLength": 1, - "type": "string" - }, - "Description": { - "description": "The description of the workflow.", - "type": "string" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the workflow.", - "type": "string" - }, - "Name": { - "description": "The name of the workflow.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the workflow.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", - "enum": [ - "BUILD", - "TEST", - "DISTRIBUTION" - ], - "type": "string" - }, - "Uri": { - "description": "The uri of the workflow.", - "type": "string" - }, - "Version": { - "description": "The version of the workflow.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Type", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Workflow", - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iotsitewise-gateway.json similarity index 93% rename from src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-gateway.json rename to src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iotsitewise-gateway.json index fbe3929817..2c70369407 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-gateway.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iotsitewise-gateway.json @@ -106,21 +106,15 @@ "create": { "permissions": [ "iotsitewise:CreateGateway", - "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:UpdateGatewayCapabilityConfiguration", "iam:PassRole", "iam:GetRole", "greengrass:GetCoreDevice", - "iotsitewise:ListTagsForResource", - "iotsitewise:TagResource", "iot:DescribeThing" ] }, "delete": { "permissions": [ - "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:DeleteGateway" ] }, @@ -143,7 +137,6 @@ "iotsitewise:TagResource", "iotsitewise:UntagResource", "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:ListTagsForResource" ] } diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iotsitewise-portal.json similarity index 95% rename from src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-portal.json rename to src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iotsitewise-portal.json index 6079f4d455..1f96697cad 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-portal.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iotsitewise-portal.json @@ -32,8 +32,6 @@ "create": { "permissions": [ "iotsitewise:CreatePortal", - "iotsitewise:DescribePortal", - "iotsitewise:ListTagsForResource", "iotsitewise:TagResource", "iam:PassRole", "sso:CreateManagedApplicationInstance", @@ -42,7 +40,6 @@ }, "delete": { "permissions": [ - "iotsitewise:DescribePortal", "iotsitewise:DeletePortal", "sso:DeleteManagedApplicationInstance" ] @@ -54,13 +51,11 @@ }, "read": { "permissions": [ - "iotsitewise:DescribePortal", - "iotsitewise:ListTagsForResource" + "iotsitewise:DescribePortal" ] }, "update": { "permissions": [ - "iotsitewise:DescribePortal", "iotsitewise:ListTagsForResource", "iotsitewise:TagResource", "iotsitewise:UpdatePortal", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iotsitewise-project.json similarity index 93% rename from src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-project.json rename to src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iotsitewise-project.json index 61f3553a17..0e457b1491 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-iotsitewise-project.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iotsitewise-project.json @@ -31,16 +31,11 @@ "create": { "permissions": [ "iotsitewise:CreateProject", - "iotsitewise:DescribeProject", - "iotsitewise:ListProjectAssets", - "iotsitewise:ListTagsForResource", - "iotsitewise:TagResource", "iotsitewise:BatchAssociateProjectAssets" ] }, "delete": { "permissions": [ - "iotsitewise:DescribeProject", "iotsitewise:DeleteProject" ] }, diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json new file mode 100644 index 0000000000..bb905fef3f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-geofencecollection.json @@ -0,0 +1,174 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CollectionName", + "/properties/KmsKeyId" + ], + "definitions": { + "PricingPlan": { + "enum": [ + "RequestBasedUsage" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "pattern": "\\A(?!aws:)[a-zA-Z0-9+\\-=\\._\\:\\/@]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "pattern": "\\A[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": { + "description": "The datetime value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ss.sssZ)", + "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", + "type": "string" + } + }, + "deprecatedProperties": [ + "/properties/PricingPlan", + "/properties/PricingPlanDataSource" + ], + "description": "Definition of AWS::Location::GeofenceCollection Resource Type", + "handlers": { + "create": { + "permissions": [ + "geo:CreateGeofenceCollection", + "geo:DescribeGeofenceCollection", + "geo:TagResource", + "geo:UntagResource", + "kms:*" + ] + }, + "delete": { + "permissions": [ + "geo:DeleteGeofenceCollection", + "geo:DescribeGeofenceCollection", + "kms:*" + ] + }, + "list": { + "permissions": [ + "geo:ListGeofenceCollections", + "kms:*" + ] + }, + "read": { + "permissions": [ + "geo:DescribeGeofenceCollection", + "kms:*" + ] + }, + "update": { + "permissions": [ + "geo:CreateGeofenceCollection", + "geo:DescribeGeofenceCollection", + "geo:TagResource", + "geo:UntagResource", + "geo:UpdateGeofenceCollection", + "kms:*" + ] + } + }, + "primaryIdentifier": [ + "/properties/CollectionName" + ], + "properties": { + "Arn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "CollectionArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "CollectionName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "CreateTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "Description": { + "maxLength": 1000, + "minLength": 0, + "type": "string" + }, + "KmsKeyId": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "PricingPlan": { + "$ref": "#/definitions/PricingPlan" + }, + "PricingPlanDataSource": { + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CollectionArn", + "/properties/Arn", + "/properties/CreateTime", + "/properties/UpdateTime" + ], + "required": [ + "CollectionName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::GeofenceCollection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-map.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-map.json new file mode 100644 index 0000000000..cf5ed3a844 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-map.json @@ -0,0 +1,182 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Configuration", + "/properties/MapName" + ], + "definitions": { + "MapConfiguration": { + "additionalProperties": false, + "properties": { + "PoliticalView": { + "maxLength": 3, + "minLength": 3, + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "Style": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "PricingPlan": { + "enum": [ + "RequestBasedUsage" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "pattern": "\\A(?!aws:)[a-zA-Z0-9+\\-=\\._\\:\\/@]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "pattern": "\\A[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": { + "description": "The datetime value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ss.sssZ)", + "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" + } + }, + "description": "Definition of AWS::Location::Map Resource Type", + "handlers": { + "create": { + "permissions": [ + "geo:CreateMap", + "geo:DescribeMap", + "geo:TagResource", + "geo:UntagResource" + ] + }, + "delete": { + "permissions": [ + "geo:DeleteMap", + "geo:DescribeMap" + ] + }, + "list": { + "permissions": [ + "geo:ListMaps" + ] + }, + "read": { + "permissions": [ + "geo:DescribeMap" + ] + }, + "update": { + "permissions": [ + "geo:CreateMap", + "geo:DescribeMap", + "geo:TagResource", + "geo:UntagResource", + "geo:UpdateMap" + ] + } + }, + "primaryIdentifier": [ + "/properties/MapName" + ], + "properties": { + "Arn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/MapConfiguration" + }, + "CreateTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "Description": { + "maxLength": 1000, + "minLength": 0, + "type": "string" + }, + "MapArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$", + "type": "string" + }, + "MapName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "PricingPlan": { + "$ref": "#/definitions/PricingPlan" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CreateTime", + "/properties/Arn", + "/properties/MapArn", + "/properties/UpdateTime" + ], + "required": [ + "Configuration", + "MapName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::Map" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-placeindex.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-placeindex.json new file mode 100644 index 0000000000..450c480581 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-placeindex.json @@ -0,0 +1,180 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DataSource", + "/properties/IndexName" + ], + "definitions": { + "DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "IntendedUse": { + "$ref": "#/definitions/IntendedUse" + } + }, + "type": "object" + }, + "IntendedUse": { + "enum": [ + "SingleUse", + "Storage" + ], + "type": "string" + }, + "PricingPlan": { + "enum": [ + "RequestBasedUsage" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "pattern": "\\A(?!aws:)[a-zA-Z0-9+\\-=\\._\\:\\/@]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "pattern": "\\A[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": { + "description": "The datetime value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ss.sssZ)", + "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" + } + }, + "description": "Definition of AWS::Location::PlaceIndex Resource Type", + "handlers": { + "create": { + "permissions": [ + "geo:CreatePlaceIndex", + "geo:DescribePlaceIndex", + "geo:TagResource", + "geo:UntagResource" + ] + }, + "delete": { + "permissions": [ + "geo:DeletePlaceIndex", + "geo:DescribePlaceIndex" + ] + }, + "list": { + "permissions": [ + "geo:ListPlaceIndexes" + ] + }, + "read": { + "permissions": [ + "geo:DescribePlaceIndex" + ] + }, + "update": { + "permissions": [ + "geo:CreatePlaceIndex", + "geo:DescribePlaceIndex", + "geo:TagResource", + "geo:UntagResource", + "geo:UpdatePlaceIndex" + ] + } + }, + "primaryIdentifier": [ + "/properties/IndexName" + ], + "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" + }, + "DataSource": { + "type": "string" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/DataSourceConfiguration" + }, + "Description": { + "maxLength": 1000, + "minLength": 0, + "type": "string" + }, + "IndexArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$", + "type": "string" + }, + "IndexName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "PricingPlan": { + "$ref": "#/definitions/PricingPlan" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CreateTime", + "/properties/Arn", + "/properties/IndexArn", + "/properties/UpdateTime" + ], + "required": [ + "DataSource", + "IndexName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::PlaceIndex" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-routecalculator.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-routecalculator.json new file mode 100644 index 0000000000..84e32d9968 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-routecalculator.json @@ -0,0 +1,161 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CalculatorName", + "/properties/DataSource" + ], + "definitions": { + "PricingPlan": { + "enum": [ + "RequestBasedUsage" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "pattern": "\\A(?!aws:)[a-zA-Z0-9+\\-=\\._\\:\\/@]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "pattern": "\\A[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": { + "description": "The datetime value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ss.sssZ)", + "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" + } + }, + "description": "Definition of AWS::Location::RouteCalculator Resource Type", + "handlers": { + "create": { + "permissions": [ + "geo:CreateRouteCalculator", + "geo:DescribeRouteCalculator", + "geo:TagResource", + "geo:UntagResource" + ] + }, + "delete": { + "permissions": [ + "geo:DeleteRouteCalculator", + "geo:DescribeRouteCalculator" + ] + }, + "list": { + "permissions": [ + "geo:ListRouteCalculators" + ] + }, + "read": { + "permissions": [ + "geo:DescribeRouteCalculator" + ] + }, + "update": { + "permissions": [ + "geo:CreateRouteCalculator", + "geo:DescribeRouteCalculator", + "geo:TagResource", + "geo:UntagResource", + "geo:UpdateRouteCalculator" + ] + } + }, + "primaryIdentifier": [ + "/properties/CalculatorName" + ], + "properties": { + "Arn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "CalculatorArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$", + "type": "string" + }, + "CalculatorName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "CreateTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "DataSource": { + "type": "string" + }, + "Description": { + "maxLength": 1000, + "minLength": 0, + "type": "string" + }, + "PricingPlan": { + "$ref": "#/definitions/PricingPlan" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CalculatorArn", + "/properties/Arn", + "/properties/CreateTime", + "/properties/UpdateTime" + ], + "required": [ + "DataSource", + "CalculatorName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::RouteCalculator" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-tracker.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-tracker.json new file mode 100644 index 0000000000..30dad78794 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-tracker.json @@ -0,0 +1,191 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/TrackerName" + ], + "definitions": { + "PositionFiltering": { + "enum": [ + "TimeBased", + "DistanceBased", + "AccuracyBased" + ], + "type": "string" + }, + "PricingPlan": { + "enum": [ + "RequestBasedUsage" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "pattern": "\\A(?!aws:)[a-zA-Z0-9+\\-=\\._\\:\\/@]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "pattern": "\\A[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": { + "description": "The datetime value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ss.sssZ)", + "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", + "type": "string" + } + }, + "deprecatedProperties": [ + "/properties/PricingPlan", + "/properties/PricingPlanDataSource" + ], + "description": "Definition of AWS::Location::Tracker Resource Type", + "handlers": { + "create": { + "permissions": [ + "geo:CreateTracker", + "geo:DescribeTracker", + "geo:TagResource", + "geo:UntagResource", + "kms:*" + ] + }, + "delete": { + "permissions": [ + "geo:DeleteTracker", + "geo:DescribeTracker", + "kms:*" + ] + }, + "list": { + "permissions": [ + "geo:ListTrackers", + "kms:*" + ] + }, + "read": { + "permissions": [ + "geo:DescribeTracker", + "kms:*" + ] + }, + "update": { + "permissions": [ + "geo:CreateTracker", + "geo:DescribeTracker", + "geo:TagResource", + "geo:UntagResource", + "geo:UpdateTracker", + "kms:*" + ] + } + }, + "primaryIdentifier": [ + "/properties/TrackerName" + ], + "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" + }, + "EventBridgeEnabled": { + "type": "boolean" + }, + "KmsKeyEnableGeospatialQueries": { + "type": "boolean" + }, + "KmsKeyId": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "PositionFiltering": { + "$ref": "#/definitions/PositionFiltering" + }, + "PricingPlan": { + "$ref": "#/definitions/PricingPlan" + }, + "PricingPlanDataSource": { + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "TrackerArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "TrackerName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CreateTime", + "/properties/Arn", + "/properties/TrackerArn", + "/properties/UpdateTime" + ], + "required": [ + "TrackerName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::Tracker" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-trackerconsumer.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-trackerconsumer.json new file mode 100644 index 0000000000..471de46c66 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-location-trackerconsumer.json @@ -0,0 +1,58 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrackerName", + "/properties/ConsumerArn" + ], + "description": "Definition of AWS::Location::TrackerConsumer Resource Type", + "handlers": { + "create": { + "permissions": [ + "geo:AssociateTrackerConsumer", + "geo:ListTrackerConsumers", + "kms:*" + ] + }, + "delete": { + "permissions": [ + "geo:DisassociateTrackerConsumer", + "geo:ListTrackerConsumers", + "kms:*" + ] + }, + "list": { + "permissions": [ + "geo:ListTrackerConsumers", + "kms:*" + ] + }, + "read": { + "permissions": [ + "geo:ListTrackerConsumers", + "kms:*" + ] + } + }, + "primaryIdentifier": [ + "/properties/TrackerName", + "/properties/ConsumerArn" + ], + "properties": { + "ConsumerArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "TrackerName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + } + }, + "required": [ + "ConsumerArn", + "TrackerName" + ], + "typeName": "AWS::Location::TrackerConsumer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackage-originendpoint.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackage-originendpoint.json new file mode 100644 index 0000000000..4c829f1788 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediapackage-originendpoint.json @@ -0,0 +1,707 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Id" + ], + "definitions": { + "AdsOnDeliveryRestrictions": { + "description": "This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to determine whether a message signals an ad. Choosing \"NONE\" means no SCTE-35 messages become ads. Choosing \"RESTRICTED\" means SCTE-35 messages of the types specified in AdTriggers that contain delivery restrictions will be treated as ads. Choosing \"UNRESTRICTED\" means SCTE-35 messages of the types specified in AdTriggers that do not contain delivery restrictions will be treated as ads. Choosing \"BOTH\" means all SCTE-35 messages of the types specified in AdTriggers will be treated as ads. Note that Splice Insert messages do not have these flags and are always treated as ads if specified in AdTriggers.", + "enum": [ + "NONE", + "RESTRICTED", + "UNRESTRICTED", + "BOTH" + ], + "type": "string" + }, + "Authorization": { + "additionalProperties": false, + "description": "CDN Authorization credentials", + "properties": { + "CdnIdentifierSecret": { + "description": "The Amazon Resource Name (ARN) for the secret in Secrets Manager that your Content Distribution Network (CDN) uses for authorization to access your endpoint.", + "type": "string" + }, + "SecretsRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.", + "type": "string" + } + }, + "required": [ + "SecretsRoleArn", + "CdnIdentifierSecret" + ], + "type": "object" + }, + "CmafEncryption": { + "additionalProperties": false, + "description": "A Common Media Application Format (CMAF) encryption configuration.", + "properties": { + "ConstantInitializationVector": { + "description": "An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).", + "maxLength": 32, + "minLength": 32, + "pattern": "\\A[0-9a-fA-F]+\\Z", + "type": "string" + }, + "EncryptionMethod": { + "description": "The encryption method used", + "enum": [ + "SAMPLE_AES", + "AES_CTR" + ], + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "description": "Time (in seconds) between each encryption key rotation.", + "type": "integer" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "CmafPackage": { + "additionalProperties": false, + "description": "A Common Media Application Format (CMAF) packaging configuration.", + "properties": { + "Encryption": { + "$ref": "#/definitions/CmafEncryption" + }, + "HlsManifests": { + "description": "A list of HLS manifest configurations", + "items": { + "$ref": "#/definitions/HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "description": "Duration (in seconds) of each segment. Actual segments will be rounded to the nearest multiple of the source segment duration.", + "type": "integer" + }, + "SegmentPrefix": { + "description": "An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId.", + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + } + }, + "type": "object" + }, + "DashEncryption": { + "additionalProperties": false, + "description": "A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.", + "properties": { + "KeyRotationIntervalSeconds": { + "description": "Time (in seconds) between each encryption key rotation.", + "type": "integer" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "DashPackage": { + "additionalProperties": false, + "description": "A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.", + "properties": { + "AdTriggers": { + "description": "A list of SCTE-35 message types that are treated as ad markers in the output. If empty, no ad markers are output. Specify multiple items to create ad markers for all of the included message types.", + "items": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY" + ], + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "$ref": "#/definitions/AdsOnDeliveryRestrictions" + }, + "Encryption": { + "$ref": "#/definitions/DashEncryption" + }, + "IncludeIframeOnlyStream": { + "description": "When enabled, an I-Frame only stream will be included in the output.", + "type": "boolean" + }, + "ManifestLayout": { + "description": "Determines the position of some tags in the Media Presentation Description (MPD). When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation. When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.", + "enum": [ + "FULL", + "COMPACT", + "DRM_TOP_LEVEL_COMPACT" + ], + "type": "string" + }, + "ManifestWindowSeconds": { + "description": "Time window (in seconds) contained in each manifest.", + "type": "integer" + }, + "MinBufferTimeSeconds": { + "description": "Minimum duration (in seconds) that a player will buffer media before starting the presentation.", + "type": "integer" + }, + "MinUpdatePeriodSeconds": { + "description": "Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD).", + "type": "integer" + }, + "PeriodTriggers": { + "description": "A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not be partitioned into more than one period. If the list contains \"ADS\", new periods will be created where the Channel source contains SCTE-35 ad markers.", + "items": { + "enum": [ + "ADS" + ], + "type": "string" + }, + "type": "array" + }, + "Profile": { + "description": "The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set to \"HBBTV_1_5\", HbbTV 1.5 compliant output is enabled.", + "enum": [ + "NONE", + "HBBTV_1_5", + "HYBRIDCAST", + "DVB_DASH_2014" + ], + "type": "string" + }, + "SegmentDurationSeconds": { + "description": "Duration (in seconds) of each segment. Actual segments will be rounded to the nearest multiple of the source segment duration.", + "type": "integer" + }, + "SegmentTemplateFormat": { + "description": "Determines the type of SegmentTemplate included in the Media Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs. When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.", + "enum": [ + "NUMBER_WITH_TIMELINE", + "TIME_WITH_TIMELINE", + "NUMBER_WITH_DURATION" + ], + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "description": "Duration (in seconds) to delay live content before presentation.", + "type": "integer" + }, + "UtcTiming": { + "description": "Determines the type of UTCTiming included in the Media Presentation Description (MPD)", + "enum": [ + "HTTP-XSDATE", + "HTTP-ISO", + "HTTP-HEAD", + "NONE" + ], + "type": "string" + }, + "UtcTimingUri": { + "description": "Specifies the value attribute of the UTCTiming field when utcTiming is set to HTTP-ISO, HTTP-HEAD or HTTP-XSDATE", + "type": "string" + } + }, + "type": "object" + }, + "EncryptionContractConfiguration": { + "additionalProperties": false, + "description": "The configuration to use for encrypting one or more content tracks separately for endpoints that use SPEKE 2.0.", + "properties": { + "PresetSpeke20Audio": { + "description": "A collection of audio encryption presets.", + "enum": [ + "PRESET-AUDIO-1", + "PRESET-AUDIO-2", + "PRESET-AUDIO-3", + "SHARED", + "UNENCRYPTED" + ], + "type": "string" + }, + "PresetSpeke20Video": { + "description": "A collection of video encryption presets.", + "enum": [ + "PRESET-VIDEO-1", + "PRESET-VIDEO-2", + "PRESET-VIDEO-3", + "PRESET-VIDEO-4", + "PRESET-VIDEO-5", + "PRESET-VIDEO-6", + "PRESET-VIDEO-7", + "PRESET-VIDEO-8", + "SHARED", + "UNENCRYPTED" + ], + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], + "type": "object" + }, + "HlsEncryption": { + "additionalProperties": false, + "description": "An HTTP Live Streaming (HLS) encryption configuration.", + "properties": { + "ConstantInitializationVector": { + "description": "A constant initialization vector for encryption (optional). When not specified the initialization vector will be periodically rotated.", + "type": "string" + }, + "EncryptionMethod": { + "description": "The encryption method to use.", + "enum": [ + "AES_128", + "SAMPLE_AES" + ], + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "description": "Interval (in seconds) between each encryption key rotation.", + "type": "integer" + }, + "RepeatExtXKey": { + "description": "When enabled, the EXT-X-KEY tag will be repeated in output manifests.", + "type": "boolean" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "HlsManifest": { + "additionalProperties": false, + "description": "A HTTP Live Streaming (HLS) manifest configuration.", + "properties": { + "AdMarkers": { + "description": "This setting controls how ad markers are included in the packaged OriginEndpoint. \"NONE\" will omit all SCTE-35 ad markers from the output. \"PASSTHROUGH\" causes the manifest to contain a copy of the SCTE-35 ad markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest. \"SCTE35_ENHANCED\" generates ad markers and blackout tags based on SCTE-35 messages in the input source. \"DATERANGE\" inserts EXT-X-DATERANGE tags to signal ad and program transition events in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value that is greater than 0.", + "enum": [ + "NONE", + "SCTE35_ENHANCED", + "PASSTHROUGH", + "DATERANGE" + ], + "type": "string" + }, + "AdTriggers": { + "description": "A list of SCTE-35 message types that are treated as ad markers in the output. If empty, no ad markers are output. Specify multiple items to create ad markers for all of the included message types.", + "items": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY" + ], + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "$ref": "#/definitions/AdsOnDeliveryRestrictions" + }, + "Id": { + "description": "The ID of the manifest. The ID must be unique within the OriginEndpoint and it cannot be changed after it is created.", + "type": "string" + }, + "IncludeIframeOnlyStream": { + "description": "When enabled, an I-Frame only stream will be included in the output.", + "type": "boolean" + }, + "ManifestName": { + "description": "An optional short string appended to the end of the OriginEndpoint URL. If not specified, defaults to the manifestName for the OriginEndpoint.", + "type": "string" + }, + "PlaylistType": { + "description": "The HTTP Live Streaming (HLS) playlist type. When either \"EVENT\" or \"VOD\" is specified, a corresponding EXT-X-PLAYLIST-TYPE entry will be included in the media playlist.", + "enum": [ + "NONE", + "EVENT", + "VOD" + ], + "type": "string" + }, + "PlaylistWindowSeconds": { + "description": "Time window (in seconds) contained in each parent manifest.", + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "description": "The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag inserted into manifests. Additionally, when an interval is specified ID3Timed Metadata messages will be generated every 5 seconds using the ingest time of the content. If the interval is not specified, or set to 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no ID3Timed Metadata messages will be generated. Note that irrespective of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, it will be passed through to HLS output.", + "type": "integer" + }, + "Url": { + "description": "The URL of the packaged OriginEndpoint for consumption.", + "type": "string" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "HlsPackage": { + "additionalProperties": false, + "description": "An HTTP Live Streaming (HLS) packaging configuration.", + "properties": { + "AdMarkers": { + "description": "This setting controls how ad markers are included in the packaged OriginEndpoint. \"NONE\" will omit all SCTE-35 ad markers from the output. \"PASSTHROUGH\" causes the manifest to contain a copy of the SCTE-35 ad markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest. \"SCTE35_ENHANCED\" generates ad markers and blackout tags based on SCTE-35 messages in the input source. \"DATERANGE\" inserts EXT-X-DATERANGE tags to signal ad and program transition events in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value that is greater than 0.", + "enum": [ + "NONE", + "SCTE35_ENHANCED", + "PASSTHROUGH", + "DATERANGE" + ], + "type": "string" + }, + "AdTriggers": { + "description": "A list of SCTE-35 message types that are treated as ad markers in the output. If empty, no ad markers are output. Specify multiple items to create ad markers for all of the included message types.", + "items": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY" + ], + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "$ref": "#/definitions/AdsOnDeliveryRestrictions" + }, + "Encryption": { + "$ref": "#/definitions/HlsEncryption" + }, + "IncludeDvbSubtitles": { + "description": "When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output.", + "type": "boolean" + }, + "IncludeIframeOnlyStream": { + "description": "When enabled, an I-Frame only stream will be included in the output.", + "type": "boolean" + }, + "PlaylistType": { + "description": "The HTTP Live Streaming (HLS) playlist type. When either \"EVENT\" or \"VOD\" is specified, a corresponding EXT-X-PLAYLIST-TYPE entry will be included in the media playlist.", + "enum": [ + "NONE", + "EVENT", + "VOD" + ], + "type": "string" + }, + "PlaylistWindowSeconds": { + "description": "Time window (in seconds) contained in each parent manifest.", + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "description": "The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag inserted into manifests. Additionally, when an interval is specified ID3Timed Metadata messages will be generated every 5 seconds using the ingest time of the content. If the interval is not specified, or set to 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no ID3Timed Metadata messages will be generated. Note that irrespective of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, it will be passed through to HLS output.", + "type": "integer" + }, + "SegmentDurationSeconds": { + "description": "Duration (in seconds) of each fragment. Actual fragments will be rounded to the nearest multiple of the source fragment duration.", + "type": "integer" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + }, + "UseAudioRenditionGroup": { + "description": "When enabled, audio streams will be placed in rendition groups in the output.", + "type": "boolean" + } + }, + "type": "object" + }, + "MssEncryption": { + "additionalProperties": false, + "description": "A Microsoft Smooth Streaming (MSS) encryption configuration.", + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "MssPackage": { + "additionalProperties": false, + "description": "A Microsoft Smooth Streaming (MSS) packaging configuration.", + "properties": { + "Encryption": { + "$ref": "#/definitions/MssEncryption" + }, + "ManifestWindowSeconds": { + "description": "The time window (in seconds) contained in each manifest.", + "type": "integer" + }, + "SegmentDurationSeconds": { + "description": "The duration (in seconds) of each segment.", + "type": "integer" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + } + }, + "type": "object" + }, + "SpekeKeyProvider": { + "additionalProperties": false, + "description": "A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.", + "properties": { + "CertificateArn": { + "description": "An Amazon Resource Name (ARN) of a Certificate Manager certificate that MediaPackage will use for enforcing secure end-to-end data transfer with the key provider service.", + "type": "string" + }, + "EncryptionContractConfiguration": { + "$ref": "#/definitions/EncryptionContractConfiguration" + }, + "ResourceId": { + "description": "The resource ID to include in key requests.", + "type": "string" + }, + "RoleArn": { + "description": "An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage will assume when accessing the key provider service.", + "type": "string" + }, + "SystemIds": { + "description": "The system IDs to include in key requests.", + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "description": "The URL of the external key provider service.", + "type": "string" + } + }, + "required": [ + "ResourceId", + "SystemIds", + "Url", + "RoleArn" + ], + "type": "object" + }, + "StreamSelection": { + "additionalProperties": false, + "description": "A StreamSelection configuration.", + "properties": { + "MaxVideoBitsPerSecond": { + "description": "The maximum video bitrate (bps) to include in output.", + "type": "integer" + }, + "MinVideoBitsPerSecond": { + "description": "The minimum video bitrate (bps) to include in output.", + "type": "integer" + }, + "StreamOrder": { + "description": "A directive that determines the order of streams in the output.", + "enum": [ + "ORIGINAL", + "VIDEO_BITRATE_ASCENDING", + "VIDEO_BITRATE_DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "deprecatedProperties": [ + "/properties/HlsPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Audio", + "/properties/HlsPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Video", + "/properties/MssPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Audio", + "/properties/MssPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Video", + "/properties/CmafPackage/HlsManifests/*/Url" + ], + "description": "Resource schema for AWS::MediaPackage::OriginEndpoint", + "handlers": { + "create": { + "permissions": [ + "mediapackage:CreateOriginEndpoint", + "mediapackage:DescribeOriginEndpoint", + "mediapackage:DescribeChannel", + "mediapackage:TagResource", + "iam:PassRole", + "acm:DescribeCertificate" + ] + }, + "delete": { + "permissions": [ + "mediapackage:DeleteOriginEndpoint" + ] + }, + "list": { + "permissions": [ + "mediapackage:ListOriginEndpoints" + ] + }, + "read": { + "permissions": [ + "mediapackage:DescribeOriginEndpoint" + ] + }, + "update": { + "permissions": [ + "mediapackage:UpdateOriginEndpoint", + "iam:PassRole" + ] + } + }, + "oneOf": [ + { + "required": [ + "HlsPackage" + ] + }, + { + "required": [ + "DashPackage" + ] + }, + { + "required": [ + "MssPackage" + ] + }, + { + "required": [ + "CmafPackage" + ] + } + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) assigned to the OriginEndpoint.", + "type": "string" + }, + "Authorization": { + "$ref": "#/definitions/Authorization" + }, + "ChannelId": { + "description": "The ID of the Channel the OriginEndpoint is associated with.", + "type": "string" + }, + "CmafPackage": { + "$ref": "#/definitions/CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/DashPackage" + }, + "Description": { + "description": "A short text description of the OriginEndpoint.", + "type": "string" + }, + "HlsPackage": { + "$ref": "#/definitions/HlsPackage" + }, + "Id": { + "description": "The ID of the OriginEndpoint.", + "maxLength": 256, + "minLength": 1, + "pattern": "\\A[0-9a-zA-Z-_]+\\Z", + "type": "string" + }, + "ManifestName": { + "description": "A short string appended to the end of the OriginEndpoint URL.", + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/MssPackage" + }, + "Origination": { + "description": "Control whether origination of video is allowed for this OriginEndpoint. If set to ALLOW, the OriginEndpoint may by requested, pursuant to any other form of access control. If set to DENY, the OriginEndpoint may not be requested. This can be helpful for Live to VOD harvesting, or for temporarily disabling origination", + "enum": [ + "ALLOW", + "DENY" + ], + "type": "string" + }, + "StartoverWindowSeconds": { + "description": "Maximum duration (seconds) of content to retain for startover playback. If not specified, startover playback will be disabled for the OriginEndpoint.", + "type": "integer" + }, + "Tags": { + "description": "A collection of tags associated with a resource", + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TimeDelaySeconds": { + "description": "Amount of delay (seconds) to enforce on the playback of live content. If not specified, there will be no time delay in effect for the OriginEndpoint.", + "type": "integer" + }, + "Url": { + "description": "The URL of the packaged OriginEndpoint for consumption.", + "type": "string" + }, + "Whitelist": { + "description": "A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Url" + ], + "required": [ + "Id", + "ChannelId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::MediaPackage::OriginEndpoint" +} 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 0dc08da645..a00efcbb80 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -109,6 +109,7 @@ "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", "AWS::MediaStore::Container", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::IVS::StreamKey", "AWS::ElastiCache::SecurityGroup", @@ -449,6 +450,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -566,6 +568,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::GameLift::GameSessionQueue", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", @@ -802,6 +805,7 @@ "AWS::RDS::DBClusterParameterGroup", "AWS::WAF::XssMatchSet", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::Pinpoint::EmailTemplate", "AWS::MediaLive::Multiplex", "AWS::Scheduler::ScheduleGroup", @@ -1078,6 +1082,7 @@ "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-transfer-certificate.json", + "aws-pinpoint-gcmchannel.json", "aws-connect-instance.json", "aws-apigateway-documentationpart.json", "aws-cloudwatch-compositealarm.json", @@ -1119,6 +1124,7 @@ "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", "aws-mediastore-container.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-ivs-streamkey.json", "aws-elasticache-securitygroup.json", @@ -1162,7 +1168,6 @@ "aws-docdb-dbinstance.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", - "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-appstream-appblockbuilder.json", @@ -1170,6 +1175,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1246,7 +1252,6 @@ "aws-ssm-document.json", "aws-iam-role.json", "aws-dms-endpoint.json", - "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", @@ -1269,6 +1274,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1289,9 +1295,11 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", + "aws-ec2-route.json", "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", @@ -1302,7 +1310,6 @@ "aws-servicecatalog-launchtemplateconstraint.json", "aws-devopsguru-resourcecollection.json", "aws-wafv2-loggingconfiguration.json", - "aws-dynamodb-globaltable.json", "alexa-ask-skill.json", "aws-backup-backupplan.json", "aws-pinpoint-eventstream.json", @@ -1448,6 +1455,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1492,6 +1500,7 @@ "aws-connect-tasktemplate.json", "aws-pinpoint-apnssandboxchannel.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1553,16 +1562,15 @@ "aws-emrcontainers-virtualcluster.json", "aws-ec2-securitygroup.json", "aws-quicksight-theme.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-gamelift-gamesessionqueue.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-glue-crawler.json", - "aws-cloudfront-function.json", "aws-apigateway-method.json", "aws-wafregional-regexpatternset.json", "aws-ssm-patchbaseline.json", @@ -1593,6 +1601,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1633,7 +1642,6 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", - "aws-iotsitewise-gateway.json", "aws-emr-studiosessionmapping.json", "aws-ivs-playbackkeypair.json", "aws-cloudformation-macro.json", @@ -1709,7 +1717,6 @@ "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -1784,6 +1791,7 @@ "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", @@ -1972,6 +1980,7 @@ "aws-rds-dbproxy.json", "aws-pinpoint-apnschannel.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-greengrass-groupversion.json", "aws-pinpoint-smschannel.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-route.json deleted file mode 100644 index 722dba73ff..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-route.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RouteTableId", - "/properties/DestinationCidrBlock", - "/properties/DestinationIpv6CidrBlock", - "/properties/DestinationPrefixListId" - ], - "description": "Resource Type definition for AWS::EC2::Route", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteRoute", - "ec2:DescribeRouteTables" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "RouteTableId": { - "$ref": "resource-schema.json#/properties/RouteTableId" - } - }, - "required": [ - "RouteTableId" - ] - }, - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - } - }, - "primaryIdentifier": [ - "/properties/RouteTableId", - "/properties/CidrBlock" - ], - "properties": { - "CarrierGatewayId": { - "description": "The ID of the carrier gateway.", - "type": "string" - }, - "CidrBlock": { - "description": "The primary identifier of the resource generated by the service.", - "type": "string" - }, - "DestinationCidrBlock": { - "description": "The IPv4 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "description": "The IPv6 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationPrefixListId": { - "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "description": "The ID of the egress-only internet gateway.", - "type": "string" - }, - "GatewayId": { - "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", - "type": "string" - }, - "InstanceId": { - "description": "The ID of a NAT instance in your VPC.", - "type": "string" - }, - "LocalGatewayId": { - "description": "The ID of the local gateway.", - "type": "string" - }, - "NatGatewayId": { - "description": "The ID of a NAT gateway.", - "type": "string" - }, - "NetworkInterfaceId": { - "description": "The ID of the network interface.", - "type": "string" - }, - "RouteTableId": { - "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", - "type": "string" - }, - "TransitGatewayId": { - "description": "The ID of a transit gateway.", - "type": "string" - }, - "VpcEndpointId": { - "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", - "type": "string" - }, - "VpcPeeringConnectionId": { - "description": "The ID of a VPC peering connection.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CidrBlock" - ], - "required": [ - "RouteTableId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", - "tagging": { - "taggable": false - }, - "typeName": "AWS::EC2::Route" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iotsitewise-gateway.json similarity index 93% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-iotsitewise-gateway.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iotsitewise-gateway.json index fbe3929817..2c70369407 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-iotsitewise-gateway.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iotsitewise-gateway.json @@ -106,21 +106,15 @@ "create": { "permissions": [ "iotsitewise:CreateGateway", - "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:UpdateGatewayCapabilityConfiguration", "iam:PassRole", "iam:GetRole", "greengrass:GetCoreDevice", - "iotsitewise:ListTagsForResource", - "iotsitewise:TagResource", "iot:DescribeThing" ] }, "delete": { "permissions": [ - "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:DeleteGateway" ] }, @@ -143,7 +137,6 @@ "iotsitewise:TagResource", "iotsitewise:UntagResource", "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:ListTagsForResource" ] } diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iotsitewise-portal.json new file mode 100644 index 0000000000..1f96697cad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iotsitewise-portal.json @@ -0,0 +1,155 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/PortalArn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalAuthMode" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Portal", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreatePortal", + "iotsitewise:TagResource", + "iam:PassRole", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeletePortal", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListPortals" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribePortal" + ] + }, + "update": { + "permissions": [ + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", + "iotsitewise:UpdatePortal", + "iotsitewise:UntagResource", + "iam:PassRole", + "sso:GetManagedApplicationInstance", + "sso:UpdateApplicationInstanceDisplayData" + ] + } + }, + "primaryIdentifier": [ + "/properties/PortalId" + ], + "properties": { + "Alarms": { + "additionalProperties": false, + "description": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range.", + "properties": { + "AlarmRoleArn": { + "description": "The ARN of the IAM role that allows the alarm to perform actions and access AWS resources and services, such as AWS IoT Events.", + "type": "string" + }, + "NotificationLambdaArn": { + "description": "The ARN of the AWS Lambda function that manages alarm notifications. For more information, see Managing alarm notifications in the AWS IoT Events Developer Guide.", + "type": "string" + } + }, + "type": "object" + }, + "NotificationSenderEmail": { + "description": "The email address that sends alarm notifications.", + "type": "string" + }, + "PortalArn": { + "description": "The ARN of the portal, which has the following format.", + "type": "string" + }, + "PortalAuthMode": { + "description": "The service to use to authenticate users to the portal. Choose from SSO or IAM. You can't change this value after you create a portal.", + "type": "string" + }, + "PortalClientId": { + "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", + "type": "string" + }, + "PortalContactEmail": { + "description": "The AWS administrator's contact email address.", + "type": "string" + }, + "PortalDescription": { + "description": "A description for the portal.", + "type": "string" + }, + "PortalId": { + "description": "The ID of the portal.", + "type": "string" + }, + "PortalName": { + "description": "A friendly name for the portal.", + "type": "string" + }, + "PortalStartUrl": { + "description": "The public root URL for the AWS IoT AWS IoT SiteWise Monitor application portal.", + "type": "string" + }, + "RoleArn": { + "description": "The ARN of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the portal.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/PortalArn", + "/properties/PortalClientId", + "/properties/PortalId", + "/properties/PortalStartUrl" + ], + "required": [ + "PortalContactEmail", + "PortalName", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotsitewise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Portal", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iotsitewise-project.json new file mode 100644 index 0000000000..0e457b1491 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iotsitewise-project.json @@ -0,0 +1,120 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalId" + ], + "definitions": { + "AssetId": { + "description": "The ID of the asset", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Project", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateProject", + "iotsitewise:BatchAssociateProjectAssets" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteProject" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListProjects" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:ListTagsForResource", + "iotsitewise:ListProjectAssets" + ] + }, + "update": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:UpdateProject", + "iotsitewise:BatchAssociateProjectAssets", + "iotsitewise:BatchDisAssociateProjectAssets", + "iotsitewise:ListProjectAssets", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ProjectId" + ], + "properties": { + "AssetIds": { + "description": "The IDs of the assets to be associated to the project.", + "items": { + "$ref": "#/definitions/AssetId" + }, + "type": "array", + "uniqueItems": true + }, + "PortalId": { + "description": "The ID of the portal in which to create the project.", + "type": "string" + }, + "ProjectArn": { + "description": "The ARN of the project.", + "type": "string" + }, + "ProjectDescription": { + "description": "A description for the project.", + "type": "string" + }, + "ProjectId": { + "description": "The ID of the project.", + "type": "string" + }, + "ProjectName": { + "description": "A friendly name for the project.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ProjectId", + "/properties/ProjectArn" + ], + "required": [ + "PortalId", + "ProjectName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Project" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-hub.json deleted file mode 100644 index b0401a5225..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-securityhub-hub.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "additionalProperties": false, - "description": "Resource Type definition for AWS::SecurityHub::Hub", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutoEnableControls": { - "type": "boolean" - }, - "ControlFindingGenerator": { - "type": "string" - }, - "EnableDefaultStandards": { - "type": "boolean" - }, - "Id": { - "type": "string" - }, - "Tags": { - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecurityHub::Hub" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} 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 42b9286649..4dd55ddbc7 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -79,6 +79,7 @@ "AWS::S3::AccessGrantsInstance", "AWS::Macie::CustomDataIdentifier", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::ElastiCache::SecurityGroup", "AWS::OpsWorks::Layer", "AWS::CloudTrail::EventDataStore", @@ -306,6 +307,7 @@ "AWS::SecretsManager::ResourcePolicy", "AWS::CloudFormation::HookDefaultVersion", "AWS::Config::ConfigRule", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -386,6 +388,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::EC2::VPNGatewayRoutePropagation", "AWS::Glue::Crawler", "AWS::CloudFront::Function", @@ -746,6 +749,7 @@ "aws-s3-accessgrantsinstance.json", "aws-macie-customdataidentifier.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-elasticache-securitygroup.json", "aws-opsworks-layer.json", "aws-kinesisfirehose-deliverystream.json", @@ -776,6 +780,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -805,10 +810,12 @@ "aws-cloudformation-moduledefaultversion.json", "aws-ce-costcategory.json", "aws-sso-permissionset.json", + "aws-glue-job.json", "aws-servicecatalog-cloudformationprovisionedproduct.json", "aws-route53-hostedzone.json", "aws-eks-podidentityassociation.json", "aws-resourceexplorer2-index.json", + "aws-glue-table.json", "aws-logs-metricfilter.json", "aws-lambda-function.json", "aws-sns-topic.json", @@ -841,6 +848,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -852,6 +860,8 @@ "aws-sagemaker-modelpackagegroup.json", "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", + "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", "aws-ec2-route.json", @@ -947,6 +957,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-cloudformation-hookdefaultversion.json", "aws-config-configrule.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -974,12 +985,12 @@ "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", "aws-networkmanager-site.json", + "aws-glue-database.json", "aws-backup-backupvault.json", "aws-ec2-customergateway.json", "aws-iam-grouppolicy.json", "aws-scheduler-schedule.json", "aws-waf-bytematchset.json", - "aws-emrserverless-application.json", "aws-ec2-host.json", "aws-systemsmanagersap-application.json", "aws-dms-replicationtask.json", @@ -1003,7 +1014,6 @@ "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-ec2-snapshotblockpublicaccess.json", - "aws-ec2-subnet.json", "aws-cloudtrail-resourcepolicy.json", "aws-s3objectlambda-accesspoint.json", "aws-waf-rule.json", @@ -1014,13 +1024,13 @@ "aws-ec2-transitgatewayconnect.json", "aws-networkmanager-sitetositevpnattachment.json", "aws-ec2-securitygroup.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-ec2-vpngatewayroutepropagation.json", - "aws-cloudfront-function.json", + "aws-glue-crawler.json", "aws-wafregional-regexpatternset.json", "aws-ssm-patchbaseline.json", "aws-cloudfront-monitoringsubscription.json", @@ -1040,6 +1050,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", @@ -1109,7 +1120,6 @@ "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-ec2-egressonlyinternetgateway.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-subnet.json new file mode 100644 index 0000000000..1e4d39cfd3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ec2-subnet.json @@ -0,0 +1,166 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::Subnet", + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "Ipv4NetmaskLength": { + "description": "The netmask length of the IPv4 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "description": "The netmask length of the IPv6 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId", + "/properties/Ipv6CidrBlocks" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emrserverless-application.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emrserverless-application.json new file mode 100644 index 0000000000..b2cb33ba91 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-emrserverless-application.json @@ -0,0 +1,553 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Architecture", + "/properties/ReleaseLabel", + "/properties/WorkerTypeSpecifications", + "/properties/MaximumCapacity", + "/properties/InitialCapacity", + "/properties/AutoStartConfiguration", + "/properties/AutoStopConfiguration", + "/properties/NetworkConfiguration", + "/properties/ImageConfiguration", + "/properties/MonitoringConfiguration", + "/properties/RuntimeConfiguration" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type" + ], + "definitions": { + "Architecture": { + "description": "The cpu architecture of an application.", + "enum": [ + "ARM64", + "X86_64" + ], + "type": "string" + }, + "AutoStartConfiguration": { + "additionalProperties": false, + "description": "Configuration for Auto Start of Application", + "properties": { + "Enabled": { + "default": true, + "description": "If set to true, the Application will automatically start. Defaults to true.", + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "AutoStopConfiguration": { + "additionalProperties": false, + "description": "Configuration for Auto Stop of Application", + "properties": { + "Enabled": { + "default": true, + "description": "If set to true, the Application will automatically stop after being idle. Defaults to true.", + "type": "boolean" + }, + "IdleTimeoutMinutes": { + "description": "The amount of time [in minutes] to wait before auto stopping the Application when idle. Defaults to 15 minutes.", + "type": "integer" + } + }, + "required": [], + "type": "object" + }, + "Classification": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "ConfigurationList": { + "description": "Runtime configuration for batch and interactive JobRun.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ConfigurationObject" + }, + "type": "array", + "uniqueItems": true + }, + "ConfigurationObject": { + "additionalProperties": false, + "description": "Configuration for a JobRun.", + "properties": { + "Classification": { + "$ref": "#/definitions/Classification", + "description": "String with a maximum length of 1024." + }, + "Configurations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ConfigurationObject" + }, + "type": "array", + "uniqueItems": true + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z]+[-a-zA-Z0-9_.]*$": { + "$ref": "#/definitions/SensitivePropertiesMap" + } + }, + "type": "object" + } + }, + "required": [ + "Classification" + ], + "type": "object" + }, + "CpuSize": { + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(vCPU|vcpu|VCPU)?$", + "type": "string" + }, + "DiskSize": { + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)$", + "type": "string" + }, + "EncryptionKeyArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):kms:[a-zA-Z0-9\\-]*:(\\d{12})?:key\\/[a-zA-Z0-9-]+$", + "type": "string" + }, + "ImageConfigurationInput": { + "additionalProperties": false, + "description": "The image configuration.", + "properties": { + "ImageUri": { + "description": "The URI of an image in the Amazon ECR registry. This field is required when you create a new application. If you leave this field blank in an update, Amazon EMR will remove the image configuration.", + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-z0-9]+[a-z0-9-.]*)\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(?:\\:([a-zA-Z0-9_][a-zA-Z0-9-._]{0,299})|@(sha256:[0-9a-f]{64}))$", + "type": "string" + } + }, + "type": "object" + }, + "InitialCapacityConfig": { + "additionalProperties": false, + "properties": { + "WorkerConfiguration": { + "$ref": "#/definitions/WorkerConfiguration" + }, + "WorkerCount": { + "description": "Initial count of workers to be initialized when an Application is started. This count will be continued to be maintained until the Application is stopped", + "format": "int64", + "maximum": 1000000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "WorkerCount", + "WorkerConfiguration" + ], + "type": "object" + }, + "InitialCapacityConfigKeyValuePair": { + "additionalProperties": false, + "properties": { + "Key": { + "description": "Worker type for an analytics framework.", + "maxLength": 50, + "minLength": 1, + "pattern": "^[a-zA-Z]+[-_]*[a-zA-Z]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/InitialCapacityConfig" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "InitialCapacityConfigMap": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InitialCapacityConfigKeyValuePair" + }, + "type": "array", + "uniqueItems": true + }, + "ManagedPersistenceMonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "default": true, + "description": "If set to false, managed logging will be turned off. Defaults to true.", + "type": "boolean" + }, + "EncryptionKeyArn": { + "$ref": "#/definitions/EncryptionKeyArn", + "description": "KMS key ARN to encrypt the logs stored in managed persistence" + } + } + }, + "MaximumAllowedResources": { + "additionalProperties": false, + "properties": { + "Cpu": { + "$ref": "#/definitions/CpuSize", + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional." + }, + "Disk": { + "$ref": "#/definitions/DiskSize", + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional" + }, + "Memory": { + "$ref": "#/definitions/MemorySize", + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional." + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "MemorySize": { + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)?$", + "type": "string" + }, + "MonitoringConfiguration": { + "additionalProperties": false, + "description": "Monitoring configuration for batch and interactive JobRun.", + "properties": { + "ManagedPersistenceMonitoringConfiguration": { + "$ref": "#/definitions/ManagedPersistenceMonitoringConfiguration", + "description": "Managed log persistence configurations for a JobRun." + }, + "S3MonitoringConfiguration": { + "$ref": "#/definitions/S3MonitoringConfiguration", + "description": "S3 monitoring configurations for a JobRun." + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "description": "The ID of the security groups in the VPC to which you want to connect your job or application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "description": "The ID of the subnets in the VPC to which you want to connect your job or application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [], + "type": "object" + }, + "S3MonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionKeyArn": { + "$ref": "#/definitions/EncryptionKeyArn", + "description": "KMS key ARN to encrypt the logs stored in given s3" + }, + "LogUri": { + "$ref": "#/definitions/UriString" + } + } + }, + "SecurityGroupId": { + "description": "Identifier of a security group", + "maxLength": 32, + "minLength": 1, + "pattern": "^[-0-9a-zA-Z]+", + "type": "string" + }, + "SensitivePropertiesKeyValuePair": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SensitivePropertiesMap": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SubnetId": { + "description": "Identifier of a subnet", + "maxLength": 32, + "minLength": 1, + "pattern": "^[-0-9a-zA-Z]+", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The value for the tag. You can specify a value that is 1 to 128 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9 /_.:=+@-]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 /_.:=+@-]*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UriString": { + "maxLength": 10280, + "minLength": 1, + "pattern": "[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\r\\n\\t]*", + "type": "string" + }, + "WorkerConfiguration": { + "additionalProperties": false, + "properties": { + "Cpu": { + "$ref": "#/definitions/CpuSize", + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional." + }, + "Disk": { + "$ref": "#/definitions/DiskSize", + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional" + }, + "Memory": { + "$ref": "#/definitions/MemorySize", + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional." + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "WorkerTypeSpecificationInput": { + "additionalProperties": false, + "description": "The specifications for a worker type.", + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/ImageConfigurationInput" + } + }, + "type": "object" + }, + "WorkerTypeSpecificationInputMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z]+[-_]*[a-zA-Z]+$": { + "$ref": "#/definitions/WorkerTypeSpecificationInput" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::EMRServerless::Application Type", + "handlers": { + "create": { + "permissions": [ + "kms:Create*", + "kms:Describe*", + "kms:Enable*", + "kms:List*", + "kms:Put*", + "kms:Update*", + "kms:Revoke*", + "kms:Disable*", + "kms:Get*", + "kms:Delete*", + "kms:ScheduleKeyDeletion", + "kms:CancelKeyDeletion", + "kms:GenerateDataKey", + "kms:TagResource", + "kms:UntagResource", + "kms:Decrypt", + "emr-serverless:CreateApplication", + "emr-serverless:TagResource", + "emr-serverless:GetApplication", + "iam:CreateServiceLinkedRole", + "ec2:CreateNetworkInterface", + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetDownloadUrlForLayer" + ] + }, + "delete": { + "permissions": [ + "emr-serverless:DeleteApplication", + "emr-serverless:GetApplication" + ] + }, + "list": { + "permissions": [ + "emr-serverless:ListApplications" + ] + }, + "read": { + "permissions": [ + "emr-serverless:GetApplication" + ] + }, + "update": { + "permissions": [ + "emr-serverless:UpdateApplication", + "emr-serverless:TagResource", + "emr-serverless:UntagResource", + "emr-serverless:GetApplication", + "ec2:CreateNetworkInterface", + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetDownloadUrlForLayer", + "kms:Create*", + "kms:Describe*", + "kms:Enable*", + "kms:List*", + "kms:Put*", + "kms:Update*", + "kms:Revoke*", + "kms:Disable*", + "kms:Get*", + "kms:Delete*", + "kms:ScheduleKeyDeletion", + "kms:CancelKeyDeletion", + "kms:GenerateDataKey", + "kms:TagResource", + "kms:UntagResource", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApplicationId" + ], + "properties": { + "ApplicationId": { + "description": "The ID of the EMR Serverless Application.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Architecture": { + "$ref": "#/definitions/Architecture" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the EMR Serverless Application.", + "type": "string" + }, + "AutoStartConfiguration": { + "$ref": "#/definitions/AutoStartConfiguration", + "description": "Configuration for Auto Start of Application." + }, + "AutoStopConfiguration": { + "$ref": "#/definitions/AutoStopConfiguration", + "description": "Configuration for Auto Stop of Application." + }, + "ImageConfiguration": { + "$ref": "#/definitions/ImageConfigurationInput" + }, + "InitialCapacity": { + "$ref": "#/definitions/InitialCapacityConfigMap", + "description": "Initial capacity initialized when an Application is started." + }, + "MaximumCapacity": { + "$ref": "#/definitions/MaximumAllowedResources", + "description": "Maximum allowed cumulative resources for an Application. No new resources will be created once the limit is hit." + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/MonitoringConfiguration" + }, + "Name": { + "description": "User friendly Application name.", + "maxLength": 64, + "minLength": 1, + "pattern": "^[A-Za-z0-9._\\/#-]+$", + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration", + "description": "Network Configuration for customer VPC connectivity." + }, + "ReleaseLabel": { + "description": "EMR release label.", + "maxLength": 64, + "minLength": 1, + "pattern": "^[A-Za-z0-9._/-]+$", + "type": "string" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/ConfigurationList" + }, + "Tags": { + "description": "Tag map with key and value", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "description": "The type of the application", + "type": "string" + }, + "WorkerTypeSpecifications": { + "$ref": "#/definitions/WorkerTypeSpecificationInputMap", + "description": "The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types." + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ApplicationId" + ], + "required": [ + "ReleaseLabel", + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "taggable": true + }, + "typeName": "AWS::EMRServerless::Application" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-classifier.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-classifier.json deleted file mode 100644 index 098d909845..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-classifier.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "CsvClassifier": { - "additionalProperties": false, - "properties": { - "AllowSingleColumn": { - "type": "boolean" - }, - "ContainsHeader": { - "type": "string" - }, - "Delimiter": { - "type": "string" - }, - "DisableValueTrimming": { - "type": "boolean" - }, - "Header": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Name": { - "type": "string" - }, - "QuoteSymbol": { - "type": "string" - } - }, - "type": "object" - }, - "GrokClassifier": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "CustomPatterns": { - "type": "string" - }, - "GrokPattern": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "GrokPattern", - "Classification" - ], - "type": "object" - }, - "JsonClassifier": { - "additionalProperties": false, - "properties": { - "JsonPath": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "JsonPath" - ], - "type": "object" - }, - "XMLClassifier": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RowTag": { - "type": "string" - } - }, - "required": [ - "RowTag", - "Classification" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Classifier", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CsvClassifier": { - "$ref": "#/definitions/CsvClassifier" - }, - "GrokClassifier": { - "$ref": "#/definitions/GrokClassifier" - }, - "Id": { - "type": "string" - }, - "JsonClassifier": { - "$ref": "#/definitions/JsonClassifier" - }, - "XMLClassifier": { - "$ref": "#/definitions/XMLClassifier" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::Glue::Classifier" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-crawler.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-crawler.json deleted file mode 100644 index ab4b1beb08..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-crawler.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "CatalogTarget": { - "additionalProperties": false, - "properties": { - "DatabaseName": { - "type": "string" - }, - "Tables": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "DynamoDBTarget": { - "additionalProperties": false, - "properties": { - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "JdbcTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "MongoDBTarget": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "Path": { - "type": "string" - } - }, - "type": "object" - }, - "RecrawlPolicy": { - "additionalProperties": false, - "properties": { - "RecrawlBehavior": { - "type": "string" - } - }, - "type": "object" - }, - "S3Target": { - "additionalProperties": false, - "properties": { - "ConnectionName": { - "type": "string" - }, - "DlqEventQueueArn": { - "type": "string" - }, - "EventQueueArn": { - "type": "string" - }, - "Exclusions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Path": { - "type": "string" - }, - "SampleSize": { - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "properties": { - "ScheduleExpression": { - "type": "string" - } - }, - "type": "object" - }, - "SchemaChangePolicy": { - "additionalProperties": false, - "properties": { - "DeleteBehavior": { - "enum": [ - "LOG", - "DELETE_FROM_DATABASE", - "DEPRECATE_IN_DATABASE" - ], - "type": "string" - }, - "UpdateBehavior": { - "enum": [ - "LOG", - "UPDATE_IN_DATABASE" - ], - "type": "string" - } - }, - "type": "object" - }, - "Targets": { - "additionalProperties": false, - "properties": { - "CatalogTargets": { - "items": { - "$ref": "#/definitions/CatalogTarget" - }, - "type": "array", - "uniqueItems": false - }, - "DynamoDBTargets": { - "items": { - "$ref": "#/definitions/DynamoDBTarget" - }, - "type": "array", - "uniqueItems": false - }, - "JdbcTargets": { - "items": { - "$ref": "#/definitions/JdbcTarget" - }, - "type": "array", - "uniqueItems": false - }, - "MongoDBTargets": { - "items": { - "$ref": "#/definitions/MongoDBTarget" - }, - "type": "array", - "uniqueItems": false - }, - "S3Targets": { - "items": { - "$ref": "#/definitions/S3Target" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Crawler", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Classifiers": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Configuration": { - "type": "string" - }, - "CrawlerSecurityConfiguration": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "RecrawlPolicy": { - "$ref": "#/definitions/RecrawlPolicy" - }, - "Role": { - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule" - }, - "SchemaChangePolicy": { - "$ref": "#/definitions/SchemaChangePolicy" - }, - "TablePrefix": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Targets": { - "$ref": "#/definitions/Targets" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Targets" - ], - "typeName": "AWS::Glue::Crawler" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json deleted file mode 100644 index fb8bf5db19..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-database.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CatalogId" - ], - "definitions": { - "DataLakePrincipal": { - "additionalProperties": false, - "properties": { - "DataLakePrincipalIdentifier": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - } - }, - "type": "object" - }, - "DatabaseInput": { - "additionalProperties": false, - "properties": { - "CreateTableDefaultPermissions": { - "items": { - "$ref": "#/definitions/PrincipalPrivileges" - }, - "type": "array", - "uniqueItems": false - }, - "Description": { - "type": "string" - }, - "LocationUri": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "TargetDatabase": { - "$ref": "#/definitions/DatabaseIdentifier" - } - }, - "type": "object" - }, - "PrincipalPrivileges": { - "additionalProperties": false, - "properties": { - "Permissions": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Principal": { - "$ref": "#/definitions/DataLakePrincipal" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Database", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseInput": { - "$ref": "#/definitions/DatabaseInput" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DatabaseInput", - "CatalogId" - ], - "typeName": "AWS::Glue::Database" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-job.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-job.json deleted file mode 100644 index c4b6de1a48..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-job.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "ConnectionsList": { - "additionalProperties": false, - "properties": { - "Connections": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "ExecutionProperty": { - "additionalProperties": false, - "properties": { - "MaxConcurrentRuns": { - "type": "number" - } - }, - "type": "object" - }, - "JobCommand": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "PythonVersion": { - "type": "string" - }, - "ScriptLocation": { - "type": "string" - } - }, - "type": "object" - }, - "NotificationProperty": { - "additionalProperties": false, - "properties": { - "NotifyDelayAfter": { - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Job", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AllocatedCapacity": { - "type": "number" - }, - "Command": { - "$ref": "#/definitions/JobCommand" - }, - "Connections": { - "$ref": "#/definitions/ConnectionsList" - }, - "DefaultArguments": { - "type": "object" - }, - "Description": { - "type": "string" - }, - "ExecutionClass": { - "type": "string" - }, - "ExecutionProperty": { - "$ref": "#/definitions/ExecutionProperty" - }, - "GlueVersion": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "MaxCapacity": { - "type": "number" - }, - "MaxRetries": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "NonOverridableArguments": { - "type": "object" - }, - "NotificationProperty": { - "$ref": "#/definitions/NotificationProperty" - }, - "NumberOfWorkers": { - "maximum": 299, - "minimum": 0, - "type": "integer" - }, - "Role": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "Tags": { - "type": "object" - }, - "Timeout": { - "type": "integer" - }, - "WorkerType": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "Role", - "Command" - ], - "typeName": "AWS::Glue::Job" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-table.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-table.json deleted file mode 100644 index 12305076ed..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-glue-table.json +++ /dev/null @@ -1,285 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DatabaseName", - "/properties/CatalogId" - ], - "definitions": { - "Column": { - "additionalProperties": false, - "properties": { - "Comment": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "IcebergInput": { - "additionalProperties": false, - "properties": { - "MetadataOperation": { - "$ref": "#/definitions/MetadataOperation" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "MetadataOperation": { - "additionalProperties": false, - "type": "object" - }, - "OpenTableFormatInput": { - "additionalProperties": false, - "properties": { - "IcebergInput": { - "$ref": "#/definitions/IcebergInput" - } - }, - "type": "object" - }, - "Order": { - "additionalProperties": false, - "properties": { - "Column": { - "type": "string" - }, - "SortOrder": { - "type": "integer" - } - }, - "required": [ - "Column", - "SortOrder" - ], - "type": "object" - }, - "SchemaId": { - "additionalProperties": false, - "properties": { - "RegistryName": { - "type": "string" - }, - "SchemaArn": { - "type": "string" - }, - "SchemaName": { - "type": "string" - } - }, - "type": "object" - }, - "SchemaReference": { - "additionalProperties": false, - "properties": { - "SchemaId": { - "$ref": "#/definitions/SchemaId" - }, - "SchemaVersionId": { - "type": "string" - }, - "SchemaVersionNumber": { - "type": "integer" - } - }, - "type": "object" - }, - "SerdeInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SerializationLibrary": { - "type": "string" - } - }, - "type": "object" - }, - "SkewedInfo": { - "additionalProperties": false, - "properties": { - "SkewedColumnNames": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "SkewedColumnValueLocationMaps": { - "type": "object" - }, - "SkewedColumnValues": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "StorageDescriptor": { - "additionalProperties": false, - "properties": { - "BucketColumns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Columns": { - "items": { - "$ref": "#/definitions/Column" - }, - "type": "array", - "uniqueItems": false - }, - "Compressed": { - "type": "boolean" - }, - "InputFormat": { - "type": "string" - }, - "Location": { - "type": "string" - }, - "NumberOfBuckets": { - "type": "integer" - }, - "OutputFormat": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "SchemaReference": { - "$ref": "#/definitions/SchemaReference" - }, - "SerdeInfo": { - "$ref": "#/definitions/SerdeInfo" - }, - "SkewedInfo": { - "$ref": "#/definitions/SkewedInfo" - }, - "SortColumns": { - "items": { - "$ref": "#/definitions/Order" - }, - "type": "array", - "uniqueItems": false - }, - "StoredAsSubDirectories": { - "type": "boolean" - } - }, - "type": "object" - }, - "TableIdentifier": { - "additionalProperties": false, - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TableInput": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Owner": { - "type": "string" - }, - "Parameters": { - "type": "object" - }, - "PartitionKeys": { - "items": { - "$ref": "#/definitions/Column" - }, - "type": "array", - "uniqueItems": false - }, - "Retention": { - "type": "integer" - }, - "StorageDescriptor": { - "$ref": "#/definitions/StorageDescriptor" - }, - "TableType": { - "enum": [ - "EXTERNAL_TABLE", - "VIRTUAL_VIEW" - ], - "type": "string" - }, - "TargetTable": { - "$ref": "#/definitions/TableIdentifier" - }, - "ViewExpandedText": { - "type": "string" - }, - "ViewOriginalText": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Glue::Table", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CatalogId": { - "type": "string" - }, - "DatabaseName": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "OpenTableFormatInput": { - "$ref": "#/definitions/OpenTableFormatInput" - }, - "TableInput": { - "$ref": "#/definitions/TableInput" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "TableInput", - "DatabaseName", - "CatalogId" - ], - "typeName": "AWS::Glue::Table" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} 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 8735bf0b8a..138512b44b 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -113,6 +113,7 @@ "AWS::Route53::RecordSet", "AWS::MediaStore::Container", "AWS::IoTAnalytics::Datastore", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::IVS::StreamKey", "AWS::ElastiCache::SecurityGroup", @@ -389,6 +390,7 @@ "AWS::RoboMaker::Fleet", "AWS::EC2::VolumeAttachment", "AWS::Glue::SecurityConfiguration", + "AWS::NetworkFirewall::TLSInspectionConfiguration", "AWS::DataBrew::Ruleset", "AWS::GameLift::MatchmakingConfiguration", "AWS::ApplicationInsights::Application", @@ -454,6 +456,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -576,6 +579,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::GameLift::GameSessionQueue", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", @@ -809,6 +813,7 @@ "AWS::RDS::DBClusterParameterGroup", "AWS::WAF::XssMatchSet", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::PinpointEmail::ConfigurationSet", "AWS::Pinpoint::EmailTemplate", "AWS::MediaLive::Multiplex", @@ -1136,6 +1141,7 @@ "aws-route53-recordset.json", "aws-mediastore-container.json", "aws-iotanalytics-datastore.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-ivs-streamkey.json", "aws-elasticache-securitygroup.json", @@ -1180,7 +1186,6 @@ "aws-docdb-dbinstance.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", - "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-appstream-appblockbuilder.json", @@ -1188,6 +1193,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1261,7 +1267,6 @@ "aws-iam-role.json", "aws-workspacesthinclient-environment.json", "aws-dms-endpoint.json", - "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", @@ -1283,6 +1288,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -1301,6 +1307,7 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-sagemaker-inferenceexperiment.json", @@ -1400,6 +1407,7 @@ "aws-ec2-transitgatewaymulticastgroupmember.json", "aws-ec2-volumeattachment.json", "aws-glue-securityconfiguration.json", + "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-databrew-ruleset.json", "aws-gamelift-matchmakingconfiguration.json", "aws-applicationinsights-application.json", @@ -1464,6 +1472,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1509,6 +1518,7 @@ "aws-connect-tasktemplate.json", "aws-pinpoint-apnssandboxchannel.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1572,11 +1582,11 @@ "aws-ec2-securitygroup.json", "aws-quicksight-theme.json", "aws-pinpointemail-identity.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-gamelift-gamesessionqueue.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", @@ -1611,6 +1621,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", @@ -1648,7 +1659,6 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", - "aws-iotsitewise-gateway.json", "aws-emr-studiosessionmapping.json", "aws-ivs-playbackkeypair.json", "aws-cloudformation-macro.json", @@ -1798,6 +1808,7 @@ "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-pinpointemail-configurationset.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", @@ -2005,6 +2016,7 @@ "aws-elasticloadbalancingv2-listener.json", "aws-redshift-eventsubscription.json", "aws-iotfleethub-application.json", + "aws-connect-user.json", "aws-ssmcontacts-contactchannel.json", "aws-memorydb-acl.json", "aws-cloudformation-waitconditionhandle.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-connect-user.json deleted file mode 100644 index b949608f4f..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-connect-user.json +++ /dev/null @@ -1,241 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AfterContactWorkTimeLimit": { - "description": "The After Call Work (ACW) timeout setting, in seconds.", - "minimum": 0, - "type": "integer" - }, - "AutoAccept": { - "description": "The Auto accept setting.", - "type": "boolean" - }, - "DeskPhoneNumber": { - "description": "The phone number for the user's desk phone.", - "type": "string" - }, - "Email": { - "description": "The email address. If you are using SAML for identity management and include this parameter, an error is returned.", - "type": "string" - }, - "FirstName": { - "description": "The first name. This is required if you are using Amazon Connect or SAML for identity management.", - "type": "string" - }, - "LastName": { - "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", - "type": "string" - }, - "Mobile": { - "description": "The mobile phone number.", - "pattern": "^\\+[1-9]\\d{1,14}$", - "type": "string" - }, - "PhoneType": { - "description": "The phone type.", - "enum": [ - "SOFT_PHONE", - "DESK_PHONE" - ], - "type": "string" - }, - "SecondaryEmail": { - "description": "The secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address.", - "pattern": "(?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}", - "type": "string" - }, - "SecurityProfileArn": { - "description": "The identifier of the security profile for the user.", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/security-profile/[-a-zA-Z0-9]*$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is maximum of 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", - "maxLength": 256, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UserIdentityInfo": { - "additionalProperties": false, - "description": "Contains information about the identity of a user.", - "properties": { - "Email": { - "$ref": "#/definitions/Email" - }, - "FirstName": { - "$ref": "#/definitions/FirstName" - }, - "LastName": { - "$ref": "#/definitions/LastName" - }, - "Mobile": { - "$ref": "#/definitions/Mobile" - }, - "SecondaryEmail": { - "$ref": "#/definitions/SecondaryEmail" - } - }, - "type": "object" - }, - "UserPhoneConfig": { - "additionalProperties": false, - "description": "Contains information about the phone configuration settings for a user.", - "properties": { - "AfterContactWorkTimeLimit": { - "$ref": "#/definitions/AfterContactWorkTimeLimit" - }, - "AutoAccept": { - "$ref": "#/definitions/AutoAccept" - }, - "DeskPhoneNumber": { - "$ref": "#/definitions/DeskPhoneNumber" - }, - "PhoneType": { - "$ref": "#/definitions/PhoneType" - } - }, - "required": [ - "PhoneType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::Connect::User", - "handlers": { - "create": { - "permissions": [ - "connect:CreateUser", - "connect:TagResource", - "connect:AssociateUserProficiencies" - ] - }, - "delete": { - "permissions": [ - "connect:DeleteUser", - "connect:UntagResource" - ] - }, - "read": { - "permissions": [ - "connect:DescribeUser", - "connect:ListUserProficiencies" - ] - }, - "update": { - "permissions": [ - "connect:UpdateUserIdentityInfo", - "connect:UpdateUserPhoneConfig", - "connect:UpdateUserRoutingProfile", - "connect:UpdateUserSecurityProfiles", - "connect:UpdateUserHierarchy", - "connect:TagResource", - "connect:UntagResource", - "connect:AssociateUserProficiencies", - "connect:DisassociateUserProficiencies", - "connect:UpdateUserProficiencies" - ] - } - }, - "primaryIdentifier": [ - "/properties/UserArn" - ], - "properties": { - "DirectoryUserId": { - "description": "The identifier of the user account in the directory used for identity management.", - "type": "string" - }, - "HierarchyGroupArn": { - "description": "The identifier of the hierarchy group for the user.", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group/[-a-zA-Z0-9]*$", - "type": "string" - }, - "IdentityInfo": { - "$ref": "#/definitions/UserIdentityInfo", - "description": "The information about the identity of the user." - }, - "InstanceArn": { - "description": "The identifier of the Amazon Connect instance.", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", - "type": "string" - }, - "Password": { - "description": "The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.", - "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$", - "type": "string" - }, - "PhoneConfig": { - "$ref": "#/definitions/UserPhoneConfig", - "description": "The phone settings for the user." - }, - "RoutingProfileArn": { - "description": "The identifier of the routing profile for the user.", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/routing-profile/[-a-zA-Z0-9]*$", - "type": "string" - }, - "SecurityProfileArns": { - "description": "One or more security profile arns for the user", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/SecurityProfileArn" - }, - "maxItems": 10, - "minItems": 1, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "description": "One or more tags.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "UserArn": { - "description": "The Amazon Resource Name (ARN) for the user.", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", - "type": "string" - }, - "Username": { - "description": "The user name for the account.", - "maxLength": 64, - "minLength": 1, - "pattern": "[a-zA-Z0-9\\_\\-\\.\\@]+", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/UserArn" - ], - "required": [ - "InstanceArn", - "PhoneConfig", - "RoutingProfileArn", - "SecurityProfileArns", - "Username" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "typeName": "AWS::Connect::User", - "writeOnlyProperties": [ - "/properties/Password" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-iotsitewise-gateway.json new file mode 100644 index 0000000000..2c70369407 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-iotsitewise-gateway.json @@ -0,0 +1,189 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GatewayPlatform" + ], + "definitions": { + "CapabilityConfiguration": { + "description": "The JSON document that defines the gateway capability's configuration.", + "type": "string" + }, + "CapabilityNamespace": { + "description": "The namespace of the capability configuration.", + "type": "string" + }, + "GatewayCapabilitySummary": { + "additionalProperties": false, + "description": "Contains a summary of a gateway capability configuration.", + "properties": { + "CapabilityConfiguration": { + "$ref": "#/definitions/CapabilityConfiguration" + }, + "CapabilityNamespace": { + "$ref": "#/definitions/CapabilityNamespace" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "GatewayPlatform": { + "additionalProperties": false, + "description": "Contains a gateway's platform information.", + "oneOf": [ + { + "required": [ + "Greengrass" + ] + }, + { + "required": [ + "GreengrassV2" + ] + } + ], + "properties": { + "Greengrass": { + "$ref": "#/definitions/Greengrass", + "description": "A gateway that runs on AWS IoT Greengrass V1." + }, + "GreengrassV2": { + "$ref": "#/definitions/GreengrassV2", + "description": "A gateway that runs on AWS IoT Greengrass V2." + } + }, + "type": "object" + }, + "Greengrass": { + "additionalProperties": false, + "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", + "properties": { + "GroupArn": { + "description": "The ARN of the Greengrass group.", + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "GreengrassV2": { + "additionalProperties": false, + "description": "Contains the CoreDeviceThingName of AWS IoT Greengrass Group V2 that the gateway runs on.", + "properties": { + "CoreDeviceThingName": { + "description": "The name of the CoreDevice in GreenGrass V2.", + "type": "string" + } + }, + "required": [ + "CoreDeviceThingName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Gateway", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iam:PassRole", + "iam:GetRole", + "greengrass:GetCoreDevice", + "iot:DescribeThing" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteGateway" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListGateways" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotsitewise:UpdateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:DescribeGateway", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/GatewayId" + ], + "properties": { + "GatewayCapabilitySummaries": { + "description": "A list of gateway capability summaries that each contain a namespace and status.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/GatewayCapabilitySummary" + }, + "type": "array", + "uniqueItems": true + }, + "GatewayId": { + "description": "The ID of the gateway device.", + "type": "string" + }, + "GatewayName": { + "description": "A unique, friendly name for the gateway.", + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/GatewayPlatform", + "description": "The gateway's platform. You can only specify one platform in a gateway." + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the gateway.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/GatewayId" + ], + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Gateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-iotsitewise-portal.json new file mode 100644 index 0000000000..1f96697cad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-iotsitewise-portal.json @@ -0,0 +1,155 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/PortalArn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalAuthMode" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Portal", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreatePortal", + "iotsitewise:TagResource", + "iam:PassRole", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeletePortal", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListPortals" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribePortal" + ] + }, + "update": { + "permissions": [ + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", + "iotsitewise:UpdatePortal", + "iotsitewise:UntagResource", + "iam:PassRole", + "sso:GetManagedApplicationInstance", + "sso:UpdateApplicationInstanceDisplayData" + ] + } + }, + "primaryIdentifier": [ + "/properties/PortalId" + ], + "properties": { + "Alarms": { + "additionalProperties": false, + "description": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range.", + "properties": { + "AlarmRoleArn": { + "description": "The ARN of the IAM role that allows the alarm to perform actions and access AWS resources and services, such as AWS IoT Events.", + "type": "string" + }, + "NotificationLambdaArn": { + "description": "The ARN of the AWS Lambda function that manages alarm notifications. For more information, see Managing alarm notifications in the AWS IoT Events Developer Guide.", + "type": "string" + } + }, + "type": "object" + }, + "NotificationSenderEmail": { + "description": "The email address that sends alarm notifications.", + "type": "string" + }, + "PortalArn": { + "description": "The ARN of the portal, which has the following format.", + "type": "string" + }, + "PortalAuthMode": { + "description": "The service to use to authenticate users to the portal. Choose from SSO or IAM. You can't change this value after you create a portal.", + "type": "string" + }, + "PortalClientId": { + "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", + "type": "string" + }, + "PortalContactEmail": { + "description": "The AWS administrator's contact email address.", + "type": "string" + }, + "PortalDescription": { + "description": "A description for the portal.", + "type": "string" + }, + "PortalId": { + "description": "The ID of the portal.", + "type": "string" + }, + "PortalName": { + "description": "A friendly name for the portal.", + "type": "string" + }, + "PortalStartUrl": { + "description": "The public root URL for the AWS IoT AWS IoT SiteWise Monitor application portal.", + "type": "string" + }, + "RoleArn": { + "description": "The ARN of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the portal.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/PortalArn", + "/properties/PortalClientId", + "/properties/PortalId", + "/properties/PortalStartUrl" + ], + "required": [ + "PortalContactEmail", + "PortalName", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotsitewise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Portal", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-iotsitewise-project.json new file mode 100644 index 0000000000..0e457b1491 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-iotsitewise-project.json @@ -0,0 +1,120 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalId" + ], + "definitions": { + "AssetId": { + "description": "The ID of the asset", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Project", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateProject", + "iotsitewise:BatchAssociateProjectAssets" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteProject" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListProjects" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:ListTagsForResource", + "iotsitewise:ListProjectAssets" + ] + }, + "update": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:UpdateProject", + "iotsitewise:BatchAssociateProjectAssets", + "iotsitewise:BatchDisAssociateProjectAssets", + "iotsitewise:ListProjectAssets", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ProjectId" + ], + "properties": { + "AssetIds": { + "description": "The IDs of the assets to be associated to the project.", + "items": { + "$ref": "#/definitions/AssetId" + }, + "type": "array", + "uniqueItems": true + }, + "PortalId": { + "description": "The ID of the portal in which to create the project.", + "type": "string" + }, + "ProjectArn": { + "description": "The ARN of the project.", + "type": "string" + }, + "ProjectDescription": { + "description": "A description for the project.", + "type": "string" + }, + "ProjectId": { + "description": "The ID of the project.", + "type": "string" + }, + "ProjectName": { + "description": "A friendly name for the project.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ProjectId", + "/properties/ProjectArn" + ], + "required": [ + "PortalId", + "ProjectName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Project" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py new file mode 100644 index 0000000000..e0b6574b8d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -0,0 +1,908 @@ +from typing import List + +# pylint: disable=too-many-lines +types = [ + "AWS::CDK::Metadata", + "AWS::CE::AnomalySubscription", + "AWS::Shield::DRTAccess", + "AWS::Glue::Partition", + "AWS::EC2::TransitGatewayRouteTablePropagation", + "AWS::Shield::ProactiveEngagement", + "AWS::ApiGateway::BasePathMapping", + "AWS::GuardDuty::Filter", + "AWS::ECS::Service", + "AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "AWS::DMS::ReplicationConfig", + "AWS::DynamoDB::Table", + "AWS::AmazonMQ::ConfigurationAssociation", + "AWS::EC2::SecurityGroupEgress", + "AWS::Glue::DataQualityRuleset", + "AWS::Config::ConfigurationRecorder", + "AWS::EC2::NetworkPerformanceMetricSubscription", + "AWS::CloudFront::ContinuousDeploymentPolicy", + "AWS::ECR::ReplicationConfiguration", + "AWS::AppConfig::ExtensionAssociation", + "AWS::EC2::IPAMPoolCidr", + "AWS::Redshift::ClusterSubnetGroup", + "AWS::RDS::DBInstance", + "AWS::EC2::VPCDHCPOptionsAssociation", + "AWS::ApiGateway::Model", + "AWS::EC2::NetworkAcl", + "AWS::Lambda::EventSourceMapping", + "AWS::Logs::ResourcePolicy", + "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::EC2::NetworkAclEntry", + "AWS::Transfer::Certificate", + "AWS::ApiGateway::DocumentationPart", + "AWS::CloudWatch::CompositeAlarm", + "AWS::Route53Resolver::FirewallDomainList", + "AWS::AppConfig::Application", + "AWS::OpsWorks::Stack", + "AWS::GameLift::Fleet", + "AWS::DataSync::LocationFSxWindows", + "AWS::GameLift::Build", + "AWS::ApiGateway::RequestValidator", + "AWS::AutoScaling::WarmPool", + "AWS::ApplicationAutoScaling::ScalableTarget", + "AWS::Config::StoredQuery", + "AWS::ACMPCA::Permission", + "AWS::Transfer::Server", + "AWS::ApiGateway::DomainName", + "AWS::ECS::PrimaryTaskSet", + "AWS::FMS::ResourceSet", + "AWS::AutoScaling::AutoScalingGroup", + "AWS::WAFv2::RegexPatternSet", + "AWS::EKS::FargateProfile", + "AWS::Route53::DNSSEC", + "AWS::EC2::TransitGatewayRouteTable", + "AWS::ControlTower::EnabledControl", + "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", + "AWS::ElastiCache::SecurityGroup", + "AWS::OpsWorks::Layer", + "AWS::KinesisFirehose::DeliveryStream", + "AWS::PCAConnectorAD::DirectoryRegistration", + "AWS::ImageBuilder::Component", + "AWS::MediaConnect::FlowEntitlement", + "AWS::Glue::Connection", + "AWS::IAM::Group", + "AWS::Organizations::ResourcePolicy", + "AWS::EC2::TransitGatewayMulticastGroupSource", + "AWS::Transfer::Profile", + "AWS::GameLift::Alias", + "AWS::AppSync::DomainName", + "AWS::ApiGateway::UsagePlanKey", + "AWS::FMS::Policy", + "AWS::CloudFront::RealtimeLogConfig", + "AWS::LakeFormation::DataCellsFilter", + "AWS::DataSync::LocationHDFS", + "AWS::Events::Archive", + "AWS::MSK::Cluster", + "AWS::EC2::VPCEndpointConnectionNotification", + "AWS::CodePipeline::Pipeline", + "AWS::OpsWorks::Instance", + "AWS::Config::ConfigurationAggregator", + "AWS::ImageBuilder::ImagePipeline", + "AWS::ElasticLoadBalancingV2::ListenerCertificate", + "AWS::Route53Resolver::ResolverRuleAssociation", + "AWS::Synthetics::Canary", + "AWS::Backup::RestoreTestingSelection", + "AWS::SNS::Subscription", + "AWS::EC2::NatGateway", + "AWS::InternetMonitor::Monitor", + "AWS::Transfer::Workflow", + "AWS::Glue::DevEndpoint", + "AWS::ElastiCache::UserGroup", + "AWS::ImageBuilder::ImageRecipe", + "AWS::ApiGateway::RestApi", + "AWS::OpsWorks::ElasticLoadBalancerAttachment", + "AWS::S3ObjectLambda::AccessPointPolicy", + "AWS::ElastiCache::ReplicationGroup", + "AWS::StepFunctions::StateMachineAlias", + "AWS::RDS::GlobalCluster", + "AWS::Glue::Job", + "AWS::ServiceCatalog::CloudFormationProvisionedProduct", + "AWS::Route53::HostedZone", + "AWS::EKS::PodIdentityAssociation", + "AWS::Glue::Table", + "AWS::Logs::MetricFilter", + "AWS::Lambda::Function", + "AWS::SNS::Topic", + "AWS::Backup::BackupSelection", + "AWS::DataSync::LocationFSxLustre", + "AWS::EC2::VPCGatewayAttachment", + "AWS::CloudTrail::Trail", + "AWS::EC2::VPNConnectionRoute", + "AWS::EC2::InternetGateway", + "AWS::EC2::GatewayRouteTableAssociation", + "AWS::WAFv2::IPSet", + "AWS::SSM::Document", + "AWS::IAM::Role", + "AWS::Events::ApiDestination", + "AWS::ElastiCache::ServerlessCache", + "AWS::CloudFront::CloudFrontOriginAccessIdentity", + "AWS::ApiGateway::ApiKey", + "AWS::AutoScaling::LaunchConfiguration", + "AWS::ApiGateway::ClientCertificate", + "AWS::KinesisAnalyticsV2::Application", + "AWS::Lambda::Alias", + "AWS::Logs::LogAnomalyDetector", + "AWS::WAF::IPSet", + "AWS::EC2::TransitGatewayMulticastDomainAssociation", + "AWS::WAF::SizeConstraintSet", + "AWS::EC2::TransitGatewayRouteTableAssociation", + "AWS::ImageBuilder::Image", + "AWS::ElastiCache::SecurityGroupIngress", + "AWS::CloudWatch::Dashboard", + "AWS::CloudWatch::Alarm", + "AWS::GuardDuty::Member", + "AWS::CloudFormation::CustomResource", + "AWS::WAFv2::RuleGroup", + "AWS::ElastiCache::ParameterGroup", + "AWS::NetworkFirewall::LoggingConfiguration", + "AWS::Glue::Classifier", + "AWS::CodeDeploy::DeploymentGroup", + "AWS::CloudFormation::StackSet", + "AWS::EC2::Route", + "AWS::CloudFormation::HookVersion", + "AWS::XRay::ResourcePolicy", + "AWS::ServiceCatalog::LaunchTemplateConstraint", + "AWS::WAFv2::LoggingConfiguration", + "AWS::DynamoDB::GlobalTable", + "AWS::Backup::BackupPlan", + "AWS::ImageBuilder::DistributionConfiguration", + "AWS::LakeFormation::Permissions", + "AWS::Glue::DataCatalogEncryptionSettings", + "AWS::CloudFront::PublicKey", + "AWS::PCAConnectorAD::Connector", + "AWS::RAM::Permission", + "AWS::DataSync::Task", + "AWS::ECS::TaskDefinition", + "AWS::Shield::Protection", + "AWS::AppSync::FunctionConfiguration", + "AWS::EC2::SpotFleet", + "AWS::IoT::PolicyPrincipalAttachment", + "AWS::FMS::NotificationChannel", + "AWS::MSK::BatchScramSecret", + "AWS::S3::Bucket", + "AWS::GuardDuty::IPSet", + "AWS::EMR::SecurityConfiguration", + "AWS::CloudWatch::InsightRule", + "AWS::ApiGateway::UsagePlan", + "AWS::Batch::SchedulingPolicy", + "AWS::ServiceCatalog::PortfolioProductAssociation", + "AWS::Athena::WorkGroup", + "AWS::ServiceCatalog::PortfolioShare", + "AWS::IAM::ServerCertificate", + "AWS::Events::EventBus", + "AWS::SQS::QueueInlinePolicy", + "AWS::Organizations::Organization", + "AWS::SSM::MaintenanceWindowTarget", + "AWS::ApiGateway::Authorizer", + "AWS::IAM::Policy", + "AWS::RDS::DBSecurityGroupIngress", + "AWS::EC2::TransitGatewayMulticastGroupMember", + "AWS::EC2::VolumeAttachment", + "AWS::Glue::SecurityConfiguration", + "AWS::ApplicationInsights::Application", + "AWS::ECS::ClusterCapacityProviderAssociations", + "AWS::AppConfig::ConfigurationProfile", + "AWS::Route53Resolver::FirewallRuleGroup", + "AWS::MSK::Configuration", + "AWS::EC2::TransitGateway", + "AWS::EC2::VPCEndpointServicePermissions", + "AWS::SSM::MaintenanceWindowTask", + "AWS::EC2::TransitGatewayMulticastDomain", + "AWS::VerifiedPermissions::PolicyTemplate", + "AWS::EKS::Cluster", + "AWS::EFS::FileSystem", + "AWS::Logs::QueryDefinition", + "AWS::IAM::InstanceProfile", + "AWS::DataSync::LocationNFS", + "AWS::CertificateManager::Certificate", + "AWS::SDB::Domain", + "AWS::EC2::SubnetRouteTableAssociation", + "AWS::ServiceCatalog::ServiceActionAssociation", + "AWS::ImageBuilder::ContainerRecipe", + "AWS::EFS::AccessPoint", + "AWS::Redshift::ClusterSecurityGroupIngress", + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation", + "AWS::ElasticLoadBalancingV2::LoadBalancer", + "AWS::OpenSearchService::Domain", + "AWS::Elasticsearch::Domain", + "AWS::ServiceCatalog::StackSetConstraint", + "AWS::EC2::NetworkInterfacePermission", + "AWS::ServiceCatalog::TagOption", + "AWS::ServiceCatalog::LaunchRoleConstraint", + "AWS::SecretsManager::ResourcePolicy", + "AWS::CloudFormation::HookDefaultVersion", + "AWS::Config::ConfigRule", + "AWS::ImageBuilder::Workflow", + "AWS::ECS::TaskSet", + "AWS::AppSync::ApiKey", + "AWS::ACMPCA::CertificateAuthorityActivation", + "AWS::GuardDuty::ThreatIntelSet", + "AWS::EC2::VPC", + "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", + "AWS::MSK::VpcConnection", + "AWS::DataSync::LocationAzureBlob", + "AWS::Logs::LogStream", + "AWS::Route53::RecordSetGroup", + "AWS::OpsWorks::App", + "AWS::Kinesis::Stream", + "AWS::Batch::JobDefinition", + "AWS::IAM::SAMLProvider", + "AWS::CloudFront::KeyGroup", + "AWS::EC2::NetworkInterfaceAttachment", + "AWS::EC2::TransitGatewayAttachment", + "AWS::Glue::CustomEntityType", + "AWS::CodeDeploy::DeploymentConfig", + "AWS::StepFunctions::StateMachineVersion", + "AWS::ServiceCatalogAppRegistry::Application", + "AWS::Glue::Database", + "AWS::Backup::BackupVault", + "AWS::EC2::CustomerGateway", + "AWS::IAM::GroupPolicy", + "AWS::Scheduler::Schedule", + "AWS::WAF::ByteMatchSet", + "AWS::EC2::Host", + "AWS::EC2::RouteTable", + "AWS::DataSync::LocationSMB", + "AWS::SecurityHub::Standard", + "AWS::SNS::TopicInlinePolicy", + "AWS::Redshift::ClusterParameterGroup", + "AWS::Organizations::Policy", + "AWS::Glue::Trigger", + "AWS::GlobalAccelerator::Listener", + "AWS::VerifiedPermissions::PolicyStore", + "AWS::EC2::VPCPeeringConnection", + "AWS::SNS::TopicPolicy", + "AWS::NetworkFirewall::RuleGroup", + "AWS::KMS::Key", + "AWS::ServiceCatalog::AcceptedPortfolioShare", + "AWS::Route53Resolver::FirewallRuleGroupAssociation", + "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", + "AWS::EC2::Subnet", + "AWS::S3ObjectLambda::AccessPoint", + "AWS::WAF::Rule", + "AWS::ElasticBeanstalk::ConfigurationTemplate", + "AWS::SQS::QueuePolicy", + "AWS::AppSync::DomainNameApiAssociation", + "AWS::AppSync::ApiCache", + "AWS::ApiGateway::Account", + "AWS::WAFv2::WebACL", + "AWS::GlobalAccelerator::EndpointGroup", + "AWS::EC2::TransitGatewayConnect", + "AWS::EC2::SecurityGroup", + "AWS::OpsWorks::Volume", + "AWS::IAM::UserToGroupAddition", + "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", + "AWS::EC2::VPNGatewayRoutePropagation", + "AWS::Glue::Crawler", + "AWS::CloudFront::Function", + "AWS::ApiGateway::Method", + "AWS::SSM::PatchBaseline", + "AWS::CloudFront::MonitoringSubscription", + "AWS::EFS::MountTarget", + "AWS::EC2::VPNConnection", + "AWS::WAF::WebACL", + "AWS::Shield::ProtectionGroup", + "AWS::IAM::User", + "AWS::EMR::InstanceGroupConfig", + "AWS::MediaConnect::Flow", + "AWS::StepFunctions::Activity", + "AWS::Logs::AccountPolicy", + "AWS::S3::BucketPolicy", + "AWS::AppSync::GraphQLSchema", + "AWS::Redshift::Cluster", + "AWS::EMR::InstanceFleetConfig", + "AWS::EMR::Cluster", + "AWS::RDS::DBCluster", + "AWS::ServiceCatalog::ResourceUpdateConstraint", + "AWS::Transfer::Agreement", + "AWS::Chatbot::SlackChannelConfiguration", + "AWS::CloudFront::Distribution", + "AWS::ElastiCache::SubnetGroup", + "AWS::XRay::Group", + "AWS::Oam::Link", + "AWS::ElasticLoadBalancingV2::TrustStoreRevocation", + "AWS::NetworkFirewall::Firewall", + "AWS::KMS::ReplicaKey", + "AWS::Redshift::ClusterSecurityGroup", + "AWS::ECR::PullThroughCacheRule", + "AWS::Glue::MLTransform", + "AWS::DataSync::LocationEFS", + "AWS::ApiGateway::Resource", + "AWS::ElasticLoadBalancingV2::TargetGroup", + "AWS::ApplicationAutoScaling::ScalingPolicy", + "AWS::Pipes::Pipe", + "AWS::CloudFormation::Macro", + "AWS::Lambda::LayerVersionPermission", + "AWS::SecretsManager::Secret", + "AWS::ElastiCache::User", + "AWS::Logs::SubscriptionFilter", + "AWS::CodeDeploy::Application", + "AWS::IoT::TopicRule", + "AWS::LakeFormation::PrincipalPermissions", + "AWS::DataSync::LocationS3", + "AWS::AutoScaling::LifecycleHook", + "AWS::FSx::DataRepositoryAssociation", + "AWS::EC2::NetworkInterface", + "AWS::AppSync::Resolver", + "AWS::ControlTower::LandingZone", + "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation", + "AWS::ImageBuilder::LifecyclePolicy", + "AWS::Lambda::EventInvokeConfig", + "AWS::MediaConnect::FlowOutput", + "AWS::Lambda::LayerVersion", + "AWS::RDS::OptionGroup", + "AWS::OpsWorks::UserProfile", + "AWS::ServiceCatalog::Portfolio", + "AWS::IoT::Policy", + "AWS::EC2::TransitGatewayRoute", + "AWS::SSM::MaintenanceWindow", + "AWS::LakeFormation::TagAssociation", + "AWS::EC2::IPAMResourceDiscovery", + "AWS::ImageBuilder::InfrastructureConfiguration", + "AWS::CloudFormation::WaitCondition", + "AWS::Route53Resolver::ResolverEndpoint", + "AWS::EC2::SubnetNetworkAclAssociation", + "AWS::ServiceCatalog::ServiceAction", + "AWS::IAM::UserPolicy", + "AWS::CloudFront::OriginAccessControl", + "AWS::SecretsManager::RotationSchedule", + "AWS::Lambda::Permission", + "AWS::NetworkFirewall::FirewallPolicy", + "AWS::EKS::IdentityProviderConfig", + "AWS::EC2::IPAMResourceDiscoveryAssociation", + "AWS::ServiceCatalogAppRegistry::AttributeGroup", + "AWS::AppSync::GraphQLApi", + "AWS::EC2::EgressOnlyInternetGateway", + "AWS::EC2::VPCCidrBlock", + "AWS::ACMPCA::CertificateAuthority", + "AWS::Athena::PreparedStatement", + "AWS::AutoScaling::ScheduledAction", + "AWS::LakeFormation::Resource", + "AWS::EC2::IPAMScope", + "AWS::DirectoryService::SimpleAD", + "AWS::EC2::VPCEndpoint", + "AWS::RDS::EventSubscription", + "AWS::Config::AggregationAuthorization", + "AWS::DataSync::Agent", + "AWS::Logs::LogGroup", + "AWS::ECS::Cluster", + "AWS::PCAConnectorAD::Template", + "AWS::EC2::PlacementGroup", + "AWS::Organizations::Account", + "AWS::ECR::Repository", + "AWS::MediaConnect::FlowSource", + "AWS::AppConfig::Extension", + "AWS::ElasticLoadBalancingV2::ListenerRule", + "AWS::ElasticLoadBalancingV2::TrustStore", + "AWS::EC2::KeyPair", + "AWS::EC2::EIPAssociation", + "AWS::ElasticBeanstalk::Application", + "AWS::IoT::ThingPrincipalAttachment", + "AWS::EC2::CapacityReservation", + "AWS::ElasticLoadBalancing::LoadBalancer", + "AWS::Transfer::User", + "AWS::IAM::RolePolicy", + "AWS::StepFunctions::StateMachine", + "AWS::RDS::DBClusterParameterGroup", + "AWS::WAF::XssMatchSet", + "AWS::Scheduler::ScheduleGroup", + "AWS::Route53::KeySigningKey", + "AWS::Events::Connection", + "AWS::Athena::DataCatalog", + "AWS::MediaConnect::FlowVpcInterface", + "AWS::Glue::Workflow", + "AWS::EC2::PrefixList", + "AWS::EC2::Instance", + "AWS::EC2::SubnetCidrBlock", + "AWS::ElasticBeanstalk::ApplicationVersion", + "AWS::WAF::SqlInjectionMatchSet", + "AWS::EC2::TransitGatewayVpcAttachment", + "AWS::EC2::FlowLog", + "AWS::AmazonMQ::Broker", + "AWS::EMR::Step", + "AWS::SSM::Association", + "AWS::CloudFront::ResponseHeadersPolicy", + "AWS::SecurityHub::AutomationRule", + "AWS::MSK::ClusterPolicy", + "AWS::GuardDuty::Master", + "AWS::KMS::Alias", + "AWS::XRay::SamplingRule", + "AWS::Route53Resolver::ResolverRule", + "AWS::Transfer::Connector", + "AWS::ApiGateway::DocumentationVersion", + "AWS::WAFv2::WebACLAssociation", + "AWS::Oam::Sink", + "AWS::ApiGateway::GatewayResponse", + "AWS::ACMPCA::Certificate", + "AWS::EC2::IPAMAllocation", + "AWS::WorkSpaces::Workspace", + "AWS::EC2::InstanceConnectEndpoint", + "AWS::DirectoryService::MicrosoftAD", + "AWS::AppSync::SourceApiAssociation", + "AWS::DataSync::LocationObjectStorage", + "AWS::ECS::CapacityProvider", + "AWS::ElastiCache::CacheCluster", + "AWS::SageMaker::ModelCard", + "AWS::Logs::Destination", + "AWS::EKS::Nodegroup", + "AWS::Organizations::OrganizationalUnit", + "AWS::AppSync::DataSource", + "AWS::SQS::Queue", + "AWS::EC2::SecurityGroupIngress", + "AWS::GuardDuty::Detector", + "AWS::ApiGateway::Stage", + "AWS::Batch::ComputeEnvironment", + "AWS::DataPipeline::Pipeline", + "AWS::IoT::Thing", + "AWS::Route53::HealthCheck", + "AWS::Athena::NamedQuery", + "AWS::ApiGateway::Deployment", + "AWS::LakeFormation::DataLakeSettings", + "AWS::AutoScaling::ScalingPolicy", + "AWS::ECR::RegistryPolicy", + "AWS::RDS::DBSecurityGroup", + "AWS::CloudWatch::MetricStream", + "AWS::SSM::Parameter", + "AWS::Config::DeliveryChannel", + "AWS::IAM::OIDCProvider", + "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", + "AWS::ServiceCatalogAppRegistry::ResourceAssociation", + "AWS::EC2::VPNGateway", + "AWS::CloudFormation::Stack", + "AWS::ResourceGroups::Group", + "AWS::CloudFormation::ResourceDefaultVersion", + "AWS::Backup::RestoreTestingPlan", + "AWS::ServiceCatalog::TagOptionAssociation", + "AWS::EC2::IPAM", + "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", + "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::CloudFront::CachePolicy", + "AWS::IAM::AccessKey", + "AWS::RDS::DBSubnetGroup", + "AWS::SecretsManager::SecretTargetAttachment", + "AWS::AmazonMQ::Configuration", + "AWS::CodePipeline::CustomActionType", + "AWS::AccessAnalyzer::Analyzer", + "AWS::EC2::EC2Fleet", + "AWS::ServiceCatalog::CloudFormationProduct", + "AWS::EC2::VPCEndpointService", + "AWS::IAM::ManagedPolicy", + "AWS::EC2::LaunchTemplate", + "AWS::CloudFront::OriginRequestPolicy", + "AWS::DataSync::LocationFSxONTAP", + "AWS::PCAConnectorAD::ServicePrincipalName", + "AWS::ElasticBeanstalk::Environment", + "AWS::Lambda::Version", + "AWS::EC2::DHCPOptions", + "AWS::EC2::IPAMPool", + "AWS::Kinesis::StreamConsumer", + "AWS::IAM::ServiceLinkedRole", + "AWS::CloudFormation::HookTypeConfig", + "AWS::EC2::Volume", + "AWS::IoT::Certificate", + "AWS::EC2::EIP", + "AWS::VerifiedPermissions::Policy", + "AWS::CloudFormation::ResourceVersion", + "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", + "AWS::RDS::DBParameterGroup", + "AWS::SecurityHub::Hub", + "AWS::S3::AccessPoint", + "AWS::Batch::JobQueue", + "AWS::ElasticLoadBalancingV2::Listener", + "AWS::CloudFormation::WaitConditionHandle", + "AWS::GlobalAccelerator::Accelerator", + "AWS::EKS::Addon", +] + +# pylint: disable=too-many-lines +cached: List[str] = [ + "aws-ce-anomalysubscription.json", + "aws-shield-drtaccess.json", + "aws-glue-partition.json", + "aws-ec2-transitgatewayroutetablepropagation.json", + "aws-shield-proactiveengagement.json", + "aws-guardduty-filter.json", + "aws-ecs-service.json", + "aws-dms-replicationconfig.json", + "aws-dynamodb-table.json", + "aws-ec2-securitygroupegress.json", + "aws-glue-dataqualityruleset.json", + "aws-config-configurationrecorder.json", + "aws-ec2-networkperformancemetricsubscription.json", + "aws-cloudfront-continuousdeploymentpolicy.json", + "aws-ecr-replicationconfiguration.json", + "aws-appconfig-extensionassociation.json", + "aws-ec2-ipampoolcidr.json", + "aws-ec2-vpcdhcpoptionsassociation.json", + "aws-ec2-networkacl.json", + "aws-lambda-eventsourcemapping.json", + "aws-logs-resourcepolicy.json", + "aws-servicecatalog-launchnotificationconstraint.json", + "aws-ec2-networkaclentry.json", + "aws-transfer-certificate.json", + "aws-cloudwatch-compositealarm.json", + "aws-route53resolver-firewalldomainlist.json", + "aws-appconfig-application.json", + "aws-datasync-locationfsxwindows.json", + "aws-autoscaling-warmpool.json", + "aws-applicationautoscaling-scalabletarget.json", + "aws-config-storedquery.json", + "aws-acmpca-permission.json", + "aws-transfer-server.json", + "aws-ecs-primarytaskset.json", + "aws-fms-resourceset.json", + "aws-autoscaling-autoscalinggroup.json", + "aws-wafv2-regexpatternset.json", + "aws-eks-fargateprofile.json", + "aws-route53-dnssec.json", + "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", + "aws-route53-recordset.json", + "aws-eks-accessentry.json", + "aws-elasticache-securitygroup.json", + "aws-kinesisfirehose-deliverystream.json", + "aws-pcaconnectorad-directoryregistration.json", + "aws-imagebuilder-component.json", + "aws-mediaconnect-flowentitlement.json", + "aws-glue-connection.json", + "aws-iam-group.json", + "aws-organizations-resourcepolicy.json", + "aws-ec2-transitgatewaymulticastgroupsource.json", + "aws-transfer-profile.json", + "aws-appsync-domainname.json", + "aws-fms-policy.json", + "aws-cloudfront-realtimelogconfig.json", + "aws-lakeformation-datacellsfilter.json", + "aws-datasync-locationhdfs.json", + "aws-events-archive.json", + "aws-msk-cluster.json", + "aws-ec2-vpcendpointconnectionnotification.json", + "aws-codepipeline-pipeline.json", + "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", + "aws-elasticloadbalancingv2-listenercertificate.json", + "aws-synthetics-canary.json", + "aws-backup-restoretestingselection.json", + "aws-sns-subscription.json", + "aws-ec2-natgateway.json", + "aws-internetmonitor-monitor.json", + "aws-transfer-workflow.json", + "aws-glue-devendpoint.json", + "aws-imagebuilder-imagerecipe.json", + "aws-opsworks-elasticloadbalancerattachment.json", + "aws-s3objectlambda-accesspointpolicy.json", + "aws-elasticache-replicationgroup.json", + "aws-stepfunctions-statemachinealias.json", + "aws-rds-globalcluster.json", + "aws-glue-job.json", + "aws-servicecatalog-cloudformationprovisionedproduct.json", + "aws-eks-podidentityassociation.json", + "aws-glue-table.json", + "aws-logs-metricfilter.json", + "aws-lambda-function.json", + "aws-sns-topic.json", + "aws-backup-backupselection.json", + "aws-datasync-locationfsxlustre.json", + "aws-ec2-vpcgatewayattachment.json", + "aws-cloudtrail-trail.json", + "aws-ec2-internetgateway.json", + "aws-ec2-gatewayroutetableassociation.json", + "aws-wafv2-ipset.json", + "aws-ssm-document.json", + "aws-iam-role.json", + "aws-events-apidestination.json", + "aws-elasticache-serverlesscache.json", + "aws-cloudfront-cloudfrontoriginaccessidentity.json", + "aws-autoscaling-launchconfiguration.json", + "aws-kinesisanalyticsv2-application.json", + "aws-lambda-alias.json", + "aws-logs-loganomalydetector.json", + "aws-ec2-transitgatewaymulticastdomainassociation.json", + "aws-ec2-transitgatewayroutetableassociation.json", + "aws-imagebuilder-image.json", + "aws-elasticache-securitygroupingress.json", + "aws-cloudwatch-dashboard.json", + "aws-cloudwatch-alarm.json", + "aws-guardduty-member.json", + "aws-cloudformation-customresource.json", + "aws-elasticache-parametergroup.json", + "aws-networkfirewall-loggingconfiguration.json", + "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", + "aws-cloudformation-stackset.json", + "aws-ec2-route.json", + "aws-cloudformation-hookversion.json", + "aws-xray-resourcepolicy.json", + "aws-servicecatalog-launchtemplateconstraint.json", + "aws-wafv2-loggingconfiguration.json", + "aws-backup-backupplan.json", + "aws-imagebuilder-distributionconfiguration.json", + "aws-lakeformation-permissions.json", + "aws-cloudfront-publickey.json", + "aws-pcaconnectorad-connector.json", + "aws-ram-permission.json", + "aws-datasync-task.json", + "aws-ecs-taskdefinition.json", + "aws-shield-protection.json", + "aws-appsync-functionconfiguration.json", + "aws-fms-notificationchannel.json", + "aws-msk-batchscramsecret.json", + "aws-s3-bucket.json", + "aws-guardduty-ipset.json", + "aws-cloudwatch-insightrule.json", + "aws-batch-schedulingpolicy.json", + "aws-athena-workgroup.json", + "aws-servicecatalog-portfolioshare.json", + "aws-iam-servercertificate.json", + "aws-events-eventbus.json", + "aws-sqs-queueinlinepolicy.json", + "aws-organizations-organization.json", + "aws-ssm-maintenancewindowtarget.json", + "aws-iam-policy.json", + "aws-rds-dbsecuritygroupingress.json", + "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-ec2-volumeattachment.json", + "aws-glue-securityconfiguration.json", + "aws-applicationinsights-application.json", + "aws-ecs-clustercapacityproviderassociations.json", + "aws-appconfig-configurationprofile.json", + "aws-route53resolver-firewallrulegroup.json", + "aws-msk-configuration.json", + "aws-ec2-transitgateway.json", + "aws-ec2-vpcendpointservicepermissions.json", + "aws-ssm-maintenancewindowtask.json", + "aws-ec2-transitgatewaymulticastdomain.json", + "aws-verifiedpermissions-policytemplate.json", + "aws-eks-cluster.json", + "aws-efs-filesystem.json", + "aws-logs-querydefinition.json", + "aws-datasync-locationnfs.json", + "aws-certificatemanager-certificate.json", + "aws-sdb-domain.json", + "aws-ec2-subnetroutetableassociation.json", + "aws-servicecatalog-serviceactionassociation.json", + "aws-imagebuilder-containerrecipe.json", + "aws-efs-accesspoint.json", + "aws-redshift-clustersecuritygroupingress.json", + "aws-servicecatalogappregistry-attributegroupassociation.json", + "aws-opensearchservice-domain.json", + "aws-elasticsearch-domain.json", + "aws-servicecatalog-stacksetconstraint.json", + "aws-servicecatalog-tagoption.json", + "aws-servicecatalog-launchroleconstraint.json", + "aws-secretsmanager-resourcepolicy.json", + "aws-cloudformation-hookdefaultversion.json", + "aws-config-configrule.json", + "aws-imagebuilder-workflow.json", + "aws-ecs-taskset.json", + "aws-appsync-apikey.json", + "aws-acmpca-certificateauthorityactivation.json", + "aws-guardduty-threatintelset.json", + "aws-ec2-vpc.json", + "aws-arczonalshift-zonalautoshiftconfiguration.json", + "aws-msk-vpcconnection.json", + "aws-datasync-locationazureblob.json", + "aws-logs-logstream.json", + "aws-route53-recordsetgroup.json", + "aws-opsworks-app.json", + "aws-kinesis-stream.json", + "aws-batch-jobdefinition.json", + "aws-iam-samlprovider.json", + "aws-cloudfront-keygroup.json", + "aws-ec2-networkinterfaceattachment.json", + "aws-codedeploy-deploymentconfig.json", + "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", + "aws-glue-database.json", + "aws-backup-backupvault.json", + "aws-iam-grouppolicy.json", + "aws-scheduler-schedule.json", + "aws-waf-bytematchset.json", + "aws-ec2-routetable.json", + "aws-datasync-locationsmb.json", + "aws-securityhub-standard.json", + "aws-sns-topicinlinepolicy.json", + "aws-organizations-policy.json", + "aws-glue-trigger.json", + "aws-globalaccelerator-listener.json", + "aws-verifiedpermissions-policystore.json", + "aws-ec2-vpcpeeringconnection.json", + "aws-sns-topicpolicy.json", + "aws-networkfirewall-rulegroup.json", + "aws-kms-key.json", + "aws-route53resolver-firewallrulegroupassociation.json", + "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", + "aws-ec2-subnet.json", + "aws-s3objectlambda-accesspoint.json", + "aws-sqs-queuepolicy.json", + "aws-appsync-domainnameapiassociation.json", + "aws-appsync-apicache.json", + "aws-globalaccelerator-endpointgroup.json", + "aws-ec2-transitgatewayconnect.json", + "aws-ec2-securitygroup.json", + "aws-opsworks-volume.json", + "aws-iam-usertogroupaddition.json", + "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", + "aws-ec2-vpngatewayroutepropagation.json", + "aws-glue-crawler.json", + "aws-ssm-patchbaseline.json", + "aws-cloudfront-monitoringsubscription.json", + "aws-efs-mounttarget.json", + "aws-shield-protectiongroup.json", + "aws-iam-user.json", + "aws-emr-instancegroupconfig.json", + "aws-mediaconnect-flow.json", + "aws-logs-accountpolicy.json", + "aws-s3-bucketpolicy.json", + "aws-appsync-graphqlschema.json", + "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", + "aws-servicecatalog-resourceupdateconstraint.json", + "aws-transfer-agreement.json", + "aws-chatbot-slackchannelconfiguration.json", + "aws-cloudfront-distribution.json", + "aws-xray-group.json", + "aws-oam-link.json", + "aws-elasticloadbalancingv2-truststorerevocation.json", + "aws-networkfirewall-firewall.json", + "aws-kms-replicakey.json", + "aws-redshift-clustersecuritygroup.json", + "aws-ecr-pullthroughcacherule.json", + "aws-glue-mltransform.json", + "aws-datasync-locationefs.json", + "aws-elasticloadbalancingv2-targetgroup.json", + "aws-applicationautoscaling-scalingpolicy.json", + "aws-pipes-pipe.json", + "aws-cloudformation-macro.json", + "aws-lambda-layerversionpermission.json", + "aws-secretsmanager-secret.json", + "aws-logs-subscriptionfilter.json", + "aws-codedeploy-application.json", + "aws-lakeformation-principalpermissions.json", + "aws-datasync-locations3.json", + "aws-autoscaling-lifecyclehook.json", + "aws-fsx-datarepositoryassociation.json", + "aws-appsync-resolver.json", + "aws-controltower-landingzone.json", + "aws-route53resolver-resolverqueryloggingconfigassociation.json", + "aws-imagebuilder-lifecyclepolicy.json", + "aws-lambda-eventinvokeconfig.json", + "aws-mediaconnect-flowoutput.json", + "aws-lambda-layerversion.json", + "aws-rds-optiongroup.json", + "aws-opsworks-userprofile.json", + "aws-ssm-maintenancewindow.json", + "aws-lakeformation-tagassociation.json", + "aws-ec2-ipamresourcediscovery.json", + "aws-imagebuilder-infrastructureconfiguration.json", + "aws-route53resolver-resolverendpoint.json", + "aws-ec2-subnetnetworkaclassociation.json", + "aws-servicecatalog-serviceaction.json", + "aws-iam-userpolicy.json", + "aws-cloudfront-originaccesscontrol.json", + "aws-secretsmanager-rotationschedule.json", + "aws-eks-identityproviderconfig.json", + "aws-ec2-ipamresourcediscoveryassociation.json", + "aws-servicecatalogappregistry-attributegroup.json", + "aws-ec2-egressonlyinternetgateway.json", + "aws-ec2-vpccidrblock.json", + "aws-acmpca-certificateauthority.json", + "aws-athena-preparedstatement.json", + "aws-autoscaling-scheduledaction.json", + "aws-lakeformation-resource.json", + "aws-ec2-ipamscope.json", + "aws-rds-eventsubscription.json", + "aws-config-aggregationauthorization.json", + "aws-datasync-agent.json", + "aws-logs-loggroup.json", + "aws-pcaconnectorad-template.json", + "aws-ec2-placementgroup.json", + "aws-organizations-account.json", + "aws-ecr-repository.json", + "aws-mediaconnect-flowsource.json", + "aws-appconfig-extension.json", + "aws-elasticloadbalancingv2-truststore.json", + "aws-ec2-keypair.json", + "aws-ec2-eipassociation.json", + "aws-ec2-capacityreservation.json", + "aws-elasticloadbalancing-loadbalancer.json", + "aws-transfer-user.json", + "aws-iam-rolepolicy.json", + "aws-stepfunctions-statemachine.json", + "aws-rds-dbclusterparametergroup.json", + "aws-scheduler-schedulegroup.json", + "aws-route53-keysigningkey.json", + "aws-events-connection.json", + "aws-athena-datacatalog.json", + "aws-mediaconnect-flowvpcinterface.json", + "aws-glue-workflow.json", + "aws-ec2-prefixlist.json", + "aws-ec2-instance.json", + "aws-ec2-subnetcidrblock.json", + "aws-waf-sqlinjectionmatchset.json", + "aws-ec2-transitgatewayvpcattachment.json", + "aws-ec2-flowlog.json", + "aws-amazonmq-broker.json", + "aws-emr-step.json", + "aws-ssm-association.json", + "aws-cloudfront-responseheaderspolicy.json", + "aws-securityhub-automationrule.json", + "aws-msk-clusterpolicy.json", + "aws-xray-samplingrule.json", + "aws-transfer-connector.json", + "aws-wafv2-webaclassociation.json", + "aws-oam-sink.json", + "aws-acmpca-certificate.json", + "aws-ec2-ipamallocation.json", + "aws-workspaces-workspace.json", + "aws-ec2-instanceconnectendpoint.json", + "aws-appsync-sourceapiassociation.json", + "aws-datasync-locationobjectstorage.json", + "aws-ecs-capacityprovider.json", + "aws-elasticache-cachecluster.json", + "aws-sagemaker-modelcard.json", + "aws-logs-destination.json", + "aws-eks-nodegroup.json", + "aws-organizations-organizationalunit.json", + "aws-appsync-datasource.json", + "aws-sqs-queue.json", + "aws-ec2-securitygroupingress.json", + "aws-guardduty-detector.json", + "aws-batch-computeenvironment.json", + "aws-athena-namedquery.json", + "aws-lakeformation-datalakesettings.json", + "aws-rds-dbsecuritygroup.json", + "aws-cloudwatch-metricstream.json", + "aws-ssm-parameter.json", + "aws-config-deliverychannel.json", + "aws-iam-oidcprovider.json", + "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", + "aws-servicecatalogappregistry-resourceassociation.json", + "aws-cloudformation-stack.json", + "aws-resourcegroups-group.json", + "aws-cloudformation-resourcedefaultversion.json", + "aws-backup-restoretestingplan.json", + "aws-ec2-ipam.json", + "aws-pcaconnectorad-templategroupaccesscontrolentry.json", + "aws-ec2-transitgatewaypeeringattachment.json", + "aws-cloudfront-cachepolicy.json", + "aws-rds-dbsubnetgroup.json", + "aws-amazonmq-configuration.json", + "aws-accessanalyzer-analyzer.json", + "aws-ec2-ec2fleet.json", + "aws-servicecatalog-cloudformationproduct.json", + "aws-ec2-vpcendpointservice.json", + "aws-iam-managedpolicy.json", + "aws-ec2-launchtemplate.json", + "aws-cloudfront-originrequestpolicy.json", + "aws-datasync-locationfsxontap.json", + "aws-pcaconnectorad-serviceprincipalname.json", + "aws-lambda-version.json", + "aws-ec2-dhcpoptions.json", + "aws-ec2-ipampool.json", + "aws-iam-servicelinkedrole.json", + "aws-cloudformation-hooktypeconfig.json", + "aws-ec2-volume.json", + "aws-verifiedpermissions-policy.json", + "aws-cloudformation-resourceversion.json", + "aws-chatbot-microsoftteamschannelconfiguration.json", + "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", + "aws-s3-accesspoint.json", + "aws-batch-jobqueue.json", + "aws-elasticloadbalancingv2-listener.json", + "aws-cloudformation-waitconditionhandle.json", + "aws-globalaccelerator-accelerator.json", + "aws-eks-addon.json", +] diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-amazonmq-configurationassociation.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-amazonmq-configurationassociation.json new file mode 100644 index 0000000000..2a5ccb1b3b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-amazonmq-configurationassociation.json @@ -0,0 +1,47 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Broker" + ], + "definitions": { + "ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Revision": { + "type": "integer" + } + }, + "required": [ + "Revision", + "Id" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Broker": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/ConfigurationId" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Broker", + "Configuration" + ], + "typeName": "AWS::AmazonMQ::ConfigurationAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-account.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-account.json new file mode 100644 index 0000000000..2fb72e9114 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-account.json @@ -0,0 +1,19 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::ApiGateway::Account", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CloudWatchRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::Account" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-apikey.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-apikey.json new file mode 100644 index 0000000000..bbc59b7abb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-apikey.json @@ -0,0 +1,83 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/GenerateDistinctId", + "/properties/Value" + ], + "definitions": { + "StageKey": { + "additionalProperties": false, + "properties": { + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ApiKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "GenerateDistinctId": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StageKeys": { + "items": { + "$ref": "#/definitions/StageKey" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Value": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ApiKey" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-authorizer.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-authorizer.json new file mode 100644 index 0000000000..9f8245e3e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-authorizer.json @@ -0,0 +1,64 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Authorizer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AuthType": { + "type": "string" + }, + "AuthorizerCredentials": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "maximum": 3600, + "minimum": 0, + "type": "integer" + }, + "AuthorizerUri": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IdentitySource": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProviderARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "Type": { + "enum": [ + "TOKEN", + "REQUEST", + "COGNITO_USER_POOLS" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-basepathmapping.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-basepathmapping.json new file mode 100644 index 0000000000..366b329398 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-basepathmapping.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/BasePath", + "/properties/DomainName" + ], + "description": "Resource Type definition for AWS::ApiGateway::BasePathMapping", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BasePath": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::BasePathMapping" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-clientcertificate.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-clientcertificate.json new file mode 100644 index 0000000000..021bfd6a85 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-clientcertificate.json @@ -0,0 +1,44 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ClientCertificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ClientCertificate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-deployment.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-deployment.json new file mode 100644 index 0000000000..70dba1a1c0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-deployment.json @@ -0,0 +1,220 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentCanarySettings", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "DeploymentCanarySettings": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "StageDescription": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "MetricsEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Deployment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DeploymentCanarySettings": { + "$ref": "#/definitions/DeploymentCanarySettings" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StageDescription": { + "$ref": "#/definitions/StageDescription" + }, + "StageName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Deployment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-documentationpart.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-documentationpart.json new file mode 100644 index 0000000000..c387182671 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-documentationpart.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Location", + "/properties/RestApiId" + ], + "definitions": { + "Location": { + "additionalProperties": false, + "properties": { + "Method": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "StatusCode": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DocumentationPart", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/Location" + }, + "Properties": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId", + "Properties", + "Location" + ], + "typeName": "AWS::ApiGateway::DocumentationPart" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-documentationversion.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-documentationversion.json new file mode 100644 index 0000000000..6c3162fd9b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-documentationversion.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DocumentationVersion", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::DocumentationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DocumentationVersion", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::DocumentationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-domainname.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-domainname.json new file mode 100644 index 0000000000..c571bde8c2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-domainname.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DomainName", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CertificateArn": { + "type": "string" + }, + "DistributionDomainName": { + "type": "string" + }, + "DistributionHostedZoneId": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "Id": { + "type": "string" + }, + "RegionalCertificateArn": { + "type": "string" + }, + "RegionalDomainName": { + "type": "string" + }, + "RegionalHostedZoneId": { + "type": "string" + }, + "SecurityPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/DistributionDomainName", + "/properties/RegionalDomainName", + "/properties/Id", + "/properties/DistributionHostedZoneId", + "/properties/RegionalHostedZoneId" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::DomainName" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-gatewayresponse.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-gatewayresponse.json new file mode 100644 index 0000000000..13fa8c2dba --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-gatewayresponse.json @@ -0,0 +1,72 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResponseType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::GatewayResponse", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "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": [ + "RestApiId", + "ResponseType" + ], + "typeName": "AWS::ApiGateway::GatewayResponse" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-method.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-method.json new file mode 100644 index 0000000000..c895cf0160 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-method.json @@ -0,0 +1,208 @@ +{ + "additionalProperties": false, + "definitions": { + "Integration": { + "additionalProperties": false, + "properties": { + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CacheNamespace": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandling": { + "type": "string" + }, + "Credentials": { + "type": "string" + }, + "IntegrationHttpMethod": { + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/IntegrationResponse" + }, + "type": "array", + "uniqueItems": true + }, + "PassthroughBehavior": { + "type": "string" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "Type": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, + "IntegrationResponse": { + "additionalProperties": false, + "properties": { + "ContentHandling": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "SelectionPattern": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "MethodResponse": { + "additionalProperties": false, + "properties": { + "ResponseModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Method", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/MethodResponse" + }, + "type": "array", + "uniqueItems": true + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "RequestValidatorId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResourceId", + "RestApiId", + "HttpMethod" + ], + "typeName": "AWS::ApiGateway::Method" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-model.json new file mode 100644 index 0000000000..f93e5b8eb8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-model.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/ContentType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Model", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Schema": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-requestvalidator.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-requestvalidator.json new file mode 100644 index 0000000000..65d76759ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-requestvalidator.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::RequestValidator", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "ValidateRequestBody": { + "type": "boolean" + }, + "ValidateRequestParameters": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::RequestValidator" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-resource.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-resource.json new file mode 100644 index 0000000000..d99746d395 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-resource.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PathPart", + "/properties/ParentId", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Resource", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "PathPart": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParentId", + "PathPart", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Resource" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-restapi.json new file mode 100644 index 0000000000..857b4a9c90 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-restapi.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::RestApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeySourceType": { + "enum": [ + "HEADER", + "AUTHORIZER" + ], + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Body": { + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "MinimumCompressionSize": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "type": "object" + }, + "RootResourceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/RootResourceId" + ], + "typeName": "AWS::ApiGateway::RestApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-stage.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-stage.json new file mode 100644 index 0000000000..715adbbabd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-stage.json @@ -0,0 +1,167 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StageName", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "DeploymentId": { + "type": "string" + }, + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Stage", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DeploymentId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Stage" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-usageplan.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-usageplan.json new file mode 100644 index 0000000000..73b66424f8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-usageplan.json @@ -0,0 +1,107 @@ +{ + "additionalProperties": false, + "definitions": { + "ApiStage": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "Throttle": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ThrottleSettings" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "QuotaSettings": { + "additionalProperties": false, + "properties": { + "Limit": { + "type": "integer" + }, + "Offset": { + "type": "integer" + }, + "Period": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "ThrottleSettings": { + "additionalProperties": false, + "properties": { + "BurstLimit": { + "type": "integer" + }, + "RateLimit": { + "type": "number" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::UsagePlan", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiStages": { + "items": { + "$ref": "#/definitions/ApiStage" + }, + "type": "array", + "uniqueItems": true + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Quota": { + "$ref": "#/definitions/QuotaSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throttle": { + "$ref": "#/definitions/ThrottleSettings" + }, + "UsagePlanName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::UsagePlan" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-usageplankey.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-usageplankey.json new file mode 100644 index 0000000000..6454c66f61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-usageplankey.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyType", + "/properties/UsagePlanId", + "/properties/KeyId" + ], + "description": "Resource Type definition for AWS::ApiGateway::UsagePlanKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "KeyId": { + "type": "string" + }, + "KeyType": { + "enum": [ + "API_KEY" + ], + "type": "string" + }, + "UsagePlanId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "KeyType", + "UsagePlanId", + "KeyId" + ], + "typeName": "AWS::ApiGateway::UsagePlanKey" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-appsync-graphqlapi.json similarity index 100% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-appsync-graphqlapi.json rename to src/cfnlint/data/schemas/providers/ap_south_2/aws-appsync-graphqlapi.json diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-autoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-autoscaling-scalingpolicy.json new file mode 100644 index 0000000000..e2d74dd76a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-autoscaling-scalingpolicy.json @@ -0,0 +1,468 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AutoScalingGroupName" + ], + "definitions": { + "CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "enum": [ + "Average", + "Minimum", + "Maximum", + "SampleCount", + "Sum" + ], + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Statistic", + "Namespace" + ], + "type": "object" + }, + "Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "MetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/MetricStat" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/Metric" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Stat", + "Metric" + ], + "type": "object" + }, + "PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "enum": [ + "ASGAverageCPUUtilization", + "ASGAverageNetworkIn", + "ASGAverageNetworkOut", + "ALBRequestCountPerTarget" + ], + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacityBreachBehavior": { + "type": "string" + }, + "MaxCapacityBuffer": { + "type": "integer" + }, + "MetricSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PredictiveScalingMetricSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Mode": { + "type": "string" + }, + "SchedulingBufferTime": { + "type": "integer" + } + }, + "required": [ + "MetricSpecifications" + ], + "type": "object" + }, + "PredictiveScalingCustomizedCapacityMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedLoadMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedScalingMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "CustomizedCapacityMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedCapacityMetric" + }, + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedLoadMetric" + }, + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedScalingMetric" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedLoadMetric" + }, + "PredefinedMetricPairSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedMetricPair" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedScalingMetric" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "PredictiveScalingPredefinedLoadMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedMetricPair": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedScalingMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "StepAdjustment": { + "additionalProperties": false, + "insertionOrder": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/PredefinedMetricSpecification" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + } + }, + "description": "The AWS::AutoScaling::ScalingPolicy resource specifies an Amazon EC2 Auto Scaling scaling policy so that the Auto Scaling group can scale the number of instances available for your application.", + "handlers": { + "create": { + "permissions": [ + "autoscaling:DescribePolicies", + "autoscaling:PutScalingPolicy" + ] + }, + "delete": { + "permissions": [ + "autoscaling:DeletePolicy", + "autoscaling:DescribePolicies" + ] + }, + "list": { + "permissions": [ + "autoscaling:DescribePolicies" + ] + }, + "read": { + "permissions": [ + "autoscaling:DescribePolicies" + ] + }, + "update": { + "permissions": [ + "autoscaling:DescribePolicies", + "autoscaling:PutScalingPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "AdjustmentType": { + "description": "Specifies how the scaling adjustment is interpreted. The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.", + "enum": [ + "ChangeInCapacity", + "ExactCapacity", + "PercentChangeInCapacity" + ], + "type": "string" + }, + "Arn": { + "description": "The ARN of the AutoScaling scaling policy", + "type": "string" + }, + "AutoScalingGroupName": { + "description": "The name of the Auto Scaling group.", + "type": "string" + }, + "Cooldown": { + "description": "The duration of the policy's cooldown period, in seconds. When a cooldown period is specified here, it overrides the default cooldown period defined for the Auto Scaling group.", + "type": "string" + }, + "EstimatedInstanceWarmup": { + "description": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. If not provided, the default is to use the value from the default cooldown period for the Auto Scaling group. Valid only if the policy type is TargetTrackingScaling or StepScaling.", + "type": "integer" + }, + "MetricAggregationType": { + "description": "The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average. Valid only if the policy type is StepScaling.", + "enum": [ + "Average", + "Maximum", + "Minimum" + ], + "type": "string" + }, + "MinAdjustmentMagnitude": { + "description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a MinAdjustmentMagnitude of 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.", + "type": "integer" + }, + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "description": "One of the following policy types: TargetTrackingScaling, StepScaling, SimpleScaling (default), PredictiveScaling", + "enum": [ + "PredictiveScaling", + "SimpleScaling", + "StepScaling", + "TargetTrackingScaling" + ], + "type": "string" + }, + "PredictiveScalingConfiguration": { + "$ref": "#/definitions/PredictiveScalingConfiguration", + "description": "A predictive scaling policy. Includes support for predefined metrics only." + }, + "ScalingAdjustment": { + "description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. Required if the policy type is SimpleScaling. (Not used with any other policy type.)", + "type": "integer" + }, + "StepAdjustments": { + "description": "A set of adjustments that enable you to scale based on the size of the alarm breach. Required if the policy type is StepScaling. (Not used with any other policy type.)", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/StepAdjustment" + }, + "type": "array", + "uniqueItems": true + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/TargetTrackingConfiguration", + "description": "A target tracking scaling policy. Includes support for predefined or customized metrics." + } + }, + "readOnlyProperties": [ + "/properties/PolicyName", + "/properties/Arn" + ], + "required": [ + "AutoScalingGroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-autoscaling.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::AutoScaling::ScalingPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-cloudformation-waitcondition.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-cloudformation-waitcondition.json new file mode 100644 index 0000000000..822d109c45 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-cloudformation-waitcondition.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::CloudFormation::WaitCondition", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Count": { + "type": "integer" + }, + "Data": { + "type": "object" + }, + "Handle": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Timeout": { + "maximum": 43200, + "minimum": 0, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Data" + ], + "typeName": "AWS::CloudFormation::WaitCondition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-codepipeline-customactiontype.json new file mode 100644 index 0000000000..6ab4bff7bf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-codepipeline-customactiontype.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigurationProperties", + "/properties/OutputArtifactDetails", + "/properties/Version", + "/properties/InputArtifactDetails", + "/properties/Settings", + "/properties/Provider", + "/properties/Category" + ], + "definitions": { + "ArtifactDetails": { + "additionalProperties": false, + "properties": { + "MaximumCount": { + "type": "integer" + }, + "MinimumCount": { + "type": "integer" + } + }, + "required": [ + "MinimumCount", + "MaximumCount" + ], + "type": "object" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Key": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { + "enum": [ + "String", + "Number", + "Boolean" + ], + "type": "string" + } + }, + "required": [ + "Secret", + "Required", + "Key", + "Name" + ], + "type": "object" + }, + "Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodePipeline::CustomActionType", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { + "items": { + "$ref": "#/definitions/ConfigurationProperties" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "Provider": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/Settings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Category", + "InputArtifactDetails", + "Version", + "OutputArtifactDetails", + "Provider" + ], + "typeName": "AWS::CodePipeline::CustomActionType" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-datapipeline-pipeline.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-datapipeline-pipeline.json new file mode 100644 index 0000000000..d2d735d9b1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-datapipeline-pipeline.json @@ -0,0 +1,173 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "StringValue", + "Key" + ], + "type": "object" + }, + "ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/ParameterAttribute" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/Field" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DataPipeline::Pipeline", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/ParameterObject" + }, + "type": "array", + "uniqueItems": false + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/ParameterValue" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/PipelineObject" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/PipelineTag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParameterObjects", + "Name" + ], + "typeName": "AWS::DataPipeline::Pipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-directoryservice-microsoftad.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-directoryservice-microsoftad.json new file mode 100644 index 0000000000..2ff7abecf1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-directoryservice-microsoftad.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcSettings", + "/properties/Edition", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::MicrosoftAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Edition": { + "enum": [ + "Enterprise", + "Standard" + ], + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::MicrosoftAD" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-directoryservice-simplead.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-directoryservice-simplead.json new file mode 100644 index 0000000000..7646d8ecbe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-directoryservice-simplead.json @@ -0,0 +1,93 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Size", + "/properties/VpcSettings", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/Description", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::SimpleAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "enum": [ + "Small", + "Large" + ], + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Size", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::SimpleAD" +} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-customergateway.json new file mode 100644 index 0000000000..fb66d92fc4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-customergateway.json @@ -0,0 +1,63 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/IpAddress", + "/properties/BgpAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CustomerGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BgpAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "IpAddress", + "BgpAsn" + ], + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-eip.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-eip.json new file mode 100644 index 0000000000..1b598ecc17 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-eip.json @@ -0,0 +1,65 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Domain", + "/properties/NetworkBorderGroup" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::EIP", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocationId": { + "type": "string" + }, + "Domain": { + "enum": [ + "vpc", + "standard" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkBorderGroup": { + "type": "string" + }, + "PublicIpv4Pool": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/AllocationId" + ], + "typeName": "AWS::EC2::EIP" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json new file mode 100644 index 0000000000..30e7b5c2d0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-host.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceType", + "/properties/AvailabilityZone" + ], + "description": "Resource Type definition for AWS::EC2::Host", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoPlacement": { + "enum": [ + "on", + "off" + ], + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "HostRecovery": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone", + "InstanceType" + ], + "typeName": "AWS::EC2::Host" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkinterface.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkinterface.json new file mode 100644 index 0000000000..d265a3421d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkinterface.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PrivateIpAddress", + "/properties/InterfaceType", + "/properties/SubnetId" + ], + "definitions": { + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::NetworkInterface", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InterfaceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "PrimaryPrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SecondaryPrivateIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecondaryPrivateIpAddresses", + "/properties/PrimaryPrivateIpAddress" + ], + "required": [ + "SubnetId" + ], + "typeName": "AWS::EC2::NetworkInterface" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkinterfacepermission.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkinterfacepermission.json new file mode 100644 index 0000000000..f16f086ec1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-networkinterfacepermission.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/Permission", + "/properties/NetworkInterfaceId" + ], + "description": "Resource Type definition for AWS::EC2::NetworkInterfacePermission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AwsAccountId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "Permission": { + "enum": [ + "INSTANCE-ATTACH", + "EIP-ASSOCIATE" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AwsAccountId", + "Permission", + "NetworkInterfaceId" + ], + "typeName": "AWS::EC2::NetworkInterfacePermission" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-spotfleet.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-spotfleet.json new file mode 100644 index 0000000000..2438ee72a8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-spotfleet.json @@ -0,0 +1,639 @@ +{ + "additionalProperties": false, + "definitions": { + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/ClassicLoadBalancer" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "integer" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/FleetLaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/LaunchTemplateOverrides" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/TargetGroupsConfig" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "SpotCapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/IamInstanceProfileSpecification" + }, + "ImageId": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/SpotFleetMonitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/InstanceNetworkInterfaceSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Placement": { + "$ref": "#/definitions/SpotPlacement" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/GroupIdentifier" + }, + "type": "array", + "uniqueItems": true + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetTagSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "UserData": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "ImageId", + "InstanceType" + ], + "type": "object" + }, + "SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string" + }, + "IamFleetRole": { + "awsType": "IamRoleArn", + "type": "string" + }, + "InstanceInterruptionBehavior": { + "type": "string" + }, + "InstancePoolsToUseCount": { + "type": "integer" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetLaunchSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/LaunchTemplateConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/LoadBalancersConfig" + }, + "OnDemandAllocationStrategy": { + "type": "string" + }, + "OnDemandMaxTotalPrice": { + "type": "string" + }, + "OnDemandTargetCapacity": { + "type": "integer" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotMaintenanceStrategies": { + "$ref": "#/definitions/SpotMaintenanceStrategies" + }, + "SpotMaxTotalPrice": { + "type": "string" + }, + "SpotPrice": { + "type": "string" + }, + "TargetCapacity": { + "type": "integer" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { + "type": "string" + } + }, + "required": [ + "IamFleetRole", + "TargetCapacity" + ], + "type": "object" + }, + "SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "SpotMaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/SpotCapacityRebalance" + } + }, + "type": "object" + }, + "SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroup" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::SpotFleet", + "oneOf": [ + { + "properties": { + "LaunchTemplateConfigs": false + }, + "required": [ + "LaunchSpecifications" + ], + "type": "object" + }, + { + "properties": { + "LaunchSpecifications": false + }, + "required": [ + "LaunchTemplateConfigs" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['LaunchSpecifications', 'LaunchTemplateConfigs']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/SpotFleetRequestConfigData" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SpotFleetRequestConfigData" + ], + "typeName": "AWS::EC2::SpotFleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-transitgatewayattachment.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-transitgatewayattachment.json new file mode 100644 index 0000000000..47b853e538 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-transitgatewayattachment.json @@ -0,0 +1,157 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/VpcId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::TransitGatewayAttachment", + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "description": "The options for the transit gateway vpc attachment.", + "properties": { + "ApplianceModeSupport": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "DnsSupport": { + "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "Ipv6Support": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + } + }, + "type": "object" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "SubnetIds", + "TransitGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-transitgatewayroute.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-transitgatewayroute.json new file mode 100644 index 0000000000..ba5a41f952 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-transitgatewayroute.json @@ -0,0 +1,37 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Blackhole", + "/properties/TransitGatewayRouteTableId", + "/properties/TransitGatewayAttachmentId", + "/properties/DestinationCidrBlock" + ], + "description": "Resource Type definition for AWS::EC2::TransitGatewayRoute", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Blackhole": { + "type": "boolean" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TransitGatewayRouteTableId" + ], + "typeName": "AWS::EC2::TransitGatewayRoute" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpcendpoint.json new file mode 100644 index 0000000000..c3678aa75e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpcendpoint.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/ServiceName" + ], + "description": "Resource Type definition for AWS::EC2::VPCEndpoint", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "ServiceName" + ], + "typeName": "AWS::EC2::VPCEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..1eadcb5ca9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnection.json @@ -0,0 +1,87 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/StaticRoutesOnly", + "/properties/VpnGatewayId", + "/properties/VpnTunnelOptionsSpecifications" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNConnection", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnectionroute.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnectionroute.json new file mode 100644 index 0000000000..937c564bf6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpnconnectionroute.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DestinationCidrBlock", + "/properties/VpnConnectionId" + ], + "description": "Resource Type definition for AWS::EC2::VPNConnectionRoute", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DestinationCidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], + "typeName": "AWS::EC2::VPNConnectionRoute" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..75dbfb349e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpngateway.json @@ -0,0 +1,54 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/AmazonSideAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonSideAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecr-registrypolicy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecr-registrypolicy.json new file mode 100644 index 0000000000..5ec89ffc01 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecr-registrypolicy.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "definitions": { + "RegistryId": { + "description": "The registry id.", + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + } + }, + "description": "The AWS::ECR::RegistryPolicy is used to specify permissions for another AWS account and is used when configuring cross-account replication. For more information, see Registry permissions in the Amazon Elastic Container Registry User Guide: https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html", + "handlers": { + "create": { + "permissions": [ + "ecr:PutRegistryPolicy" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRegistryPolicy" + ] + }, + "list": { + "permissions": [ + "ecr:GetRegistryPolicy" + ] + }, + "read": { + "permissions": [ + "ecr:GetRegistryPolicy" + ] + }, + "update": { + "permissions": [ + "ecr:PutRegistryPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/RegistryId" + ], + "properties": { + "PolicyText": { + "description": "The JSON policy text to apply to your registry. The policy text follows the same format as IAM policy text. For more information, see Registry permissions (https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html) in the Amazon Elastic Container Registry User Guide.", + "type": "object" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "readOnlyProperties": [ + "/properties/RegistryId" + ], + "required": [ + "PolicyText" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "typeName": "AWS::ECR::RegistryPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-cluster.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-cluster.json new file mode 100644 index 0000000000..eee698bbc5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ecs-cluster.json @@ -0,0 +1,199 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterName" + ], + "definitions": { + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "description": "A capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used.", + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "ClusterConfiguration": { + "additionalProperties": false, + "description": "The configurations to be set at cluster level.", + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/ExecuteCommandConfiguration" + } + }, + "type": "object" + }, + "ClusterSettings": { + "additionalProperties": false, + "description": "The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandConfiguration": { + "additionalProperties": false, + "description": "The configuration for ExecuteCommand.", + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "description": "The session logging configuration for ExecuteCommand.", + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectDefaults": { + "additionalProperties": false, + "description": "Service Connect Configuration default for all services or tasks within this cluster", + "properties": { + "Namespace": { + "description": "Service Connect Namespace Name or ARN default for all services or tasks within this cluster", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Create an Elastic Container Service (ECS) cluster.", + "handlers": { + "create": { + "permissions": [ + "ecs:CreateCluster", + "ecs:DescribeClusters", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteCluster", + "ecs:DescribeClusters" + ] + }, + "list": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:ListClusters" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeClusters" + ] + }, + "update": { + "permissions": [ + "ecs:PutAccountSettingDefault", + "ecs:DescribeClusters", + "ecs:TagResource", + "ecs:UntagResource", + "ecs:PutAccountSetting", + "ecs:ListTagsForResource", + "ecs:UpdateCluster", + "ecs:UpdateClusterSettings", + "ecs:PutClusterCapacityProviders" + ] + } + }, + "primaryIdentifier": [ + "/properties/ClusterName" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Amazon ECS cluster, such as arn:aws:ecs:us-east-2:123456789012:cluster/MyECSCluster.", + "type": "string" + }, + "CapacityProviders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterName": { + "description": "A user-generated string that you use to identify your cluster. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name.", + "type": "string" + }, + "ClusterSettings": { + "items": { + "$ref": "#/definitions/ClusterSettings" + }, + "type": "array" + }, + "Configuration": { + "$ref": "#/definitions/ClusterConfiguration" + }, + "DefaultCapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "ServiceConnectDefaults": { + "$ref": "#/definitions/ServiceConnectDefaults" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::ECS::Cluster", + "writeOnlyProperties": [ + "/properties/ServiceConnectDefaults" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticache-subnetgroup.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticache-subnetgroup.json new file mode 100644 index 0000000000..80ce070829 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticache-subnetgroup.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CacheSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElastiCache::SubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::ElastiCache::SubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticache-user.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticache-user.json new file mode 100644 index 0000000000..9aca62e6f8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticache-user.json @@ -0,0 +1,181 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/UserId", + "/properties/UserName", + "/properties/Engine" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with 'aws:'. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElastiCache::User", + "handlers": { + "create": { + "permissions": [ + "elasticache:CreateUser", + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource" + ] + }, + "delete": { + "permissions": [ + "elasticache:DeleteUser", + "elasticache:DescribeUsers" + ] + }, + "list": { + "permissions": [ + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "elasticache:ModifyUser", + "elasticache:DescribeUsers", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource", + "elasticache:RemoveTagsFromResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserId" + ], + "properties": { + "AccessString": { + "description": "Access permissions string used for this user account.", + "type": "string" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the user account.", + "type": "string" + }, + "AuthenticationMode": { + "additionalProperties": false, + "properties": { + "Passwords": { + "$comment": "List of passwords.", + "description": "Passwords used for this user account. You can create up to two passwords for each user.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "description": "Authentication Type", + "enum": [ + "password", + "no-password-required", + "iam" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Engine": { + "description": "Must be redis.", + "enum": [ + "redis" + ], + "type": "string" + }, + "NoPasswordRequired": { + "description": "Indicates a password is not required for this user account.", + "type": "boolean" + }, + "Passwords": { + "$comment": "List of passwords.", + "description": "Passwords used for this user account. You can create up to two passwords for each user.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Status": { + "description": "Indicates the user status. Can be \"active\", \"modifying\" or \"deleting\".", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this user.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserId": { + "description": "The ID of the user.", + "pattern": "[a-z][a-z0-9\\\\-]*", + "type": "string" + }, + "UserName": { + "description": "The username of the user.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Status", + "/properties/Arn" + ], + "required": [ + "UserId", + "UserName", + "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::User", + "writeOnlyProperties": [ + "/properties/Passwords", + "/properties/NoPasswordRequired", + "/properties/AccessString", + "/properties/AuthenticationMode" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticache-usergroup.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticache-usergroup.json new file mode 100644 index 0000000000..9ae0857ed5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticache-usergroup.json @@ -0,0 +1,136 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/UserGroupId", + "/properties/Engine" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with 'aws:'. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9 _\\.\\/=+:\\-@]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElastiCache::UserGroup", + "handlers": { + "create": { + "permissions": [ + "elasticache:CreateUserGroup", + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource" + ] + }, + "delete": { + "permissions": [ + "elasticache:ModifyReplicationGroup", + "elasticache:DeleteUserGroup", + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource" + ] + }, + "list": { + "permissions": [ + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "elasticache:ModifyUserGroup", + "elasticache:DescribeUserGroups", + "elasticache:ListTagsForResource", + "elasticache:AddTagsToResource", + "elasticache:RemoveTagsFromResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserGroupId" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the user account.", + "type": "string" + }, + "Engine": { + "description": "Must be redis.", + "enum": [ + "redis" + ], + "type": "string" + }, + "Status": { + "description": "Indicates user group status. Can be \"creating\", \"active\", \"modifying\", \"deleting\".", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this user.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UserGroupId": { + "description": "The ID of the user group.", + "pattern": "[a-z][a-z0-9\\\\-]*", + "type": "string" + }, + "UserIds": { + "$comment": "List of users.", + "description": "List of users associated to this user group.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Status", + "/properties/Arn" + ], + "required": [ + "UserGroupId", + "Engine", + "UserIds" + ], + "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::UserGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-application.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-application.json new file mode 100644 index 0000000000..b613aba6c6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-application.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName" + ], + "definitions": { + "ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/MaxCountRule" + } + }, + "type": "object" + }, + "MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "integer" + } + }, + "type": "object" + }, + "MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Application", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/ApplicationResourceLifecycleConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ElasticBeanstalk::Application" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-applicationversion.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-applicationversion.json new file mode 100644 index 0000000000..1b3a2845a4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-applicationversion.json @@ -0,0 +1,51 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/SourceBundle" + ], + "definitions": { + "SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/SourceBundle" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "SourceBundle" + ], + "typeName": "AWS::ElasticBeanstalk::ApplicationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-configurationtemplate.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-configurationtemplate.json new file mode 100644 index 0000000000..bd1a025e3f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-configurationtemplate.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PlatformArn", + "/properties/ApplicationName", + "/properties/SolutionStackName", + "/properties/EnvironmentId", + "/properties/SourceConfiguration" + ], + "definitions": { + "ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/ConfigurationOptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/SourceConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::ConfigurationTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-environment.json new file mode 100644 index 0000000000..ad67522d06 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticbeanstalk-environment.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CNAMEPrefix", + "/properties/EnvironmentName", + "/properties/ApplicationName", + "/properties/SolutionStackName" + ], + "definitions": { + "OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Environment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EndpointURL": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OperationsRole": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/OptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/EndpointURL" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::Environment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-listenerrule.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-listenerrule.json new file mode 100644 index 0000000000..0afd31c630 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-listenerrule.json @@ -0,0 +1,386 @@ +{ + "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": { + "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": { + "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" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "required": [ + "TokenEndpoint", + "Issuer", + "ClientSecret", + "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" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerRule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": true + }, + "Conditions": { + "items": { + "$ref": "#/definitions/RuleCondition" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "ListenerArn": { + "type": "string" + }, + "Priority": { + "maximum": 50000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ListenerArn", + "Actions", + "Priority", + "Conditions" + ], + "typeName": "AWS::ElasticLoadBalancingV2::ListenerRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..48793c4fbd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,184 @@ +{ + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::LoadBalancer", + "oneOf": [ + { + "properties": { + "Subnets": false + }, + "required": [ + "SubnetMappings" + ], + "type": "object" + }, + { + "properties": { + "SubnetMappings": false + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['SubnetMappings', 'Subnets']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/CanonicalHostedZoneID", + "/properties/Id", + "/properties/LoadBalancerFullName", + "/properties/DNSName" + ], + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-emr-securityconfiguration.json new file mode 100644 index 0000000000..1f55dfd600 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-emr-securityconfiguration.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/SecurityConfiguration" + ], + "description": "Resource Type definition for AWS::EMR::SecurityConfiguration", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecurityConfiguration" + ], + "typeName": "AWS::EMR::SecurityConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-alias.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-alias.json new file mode 100644 index 0000000000..a786ab0606 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-alias.json @@ -0,0 +1,49 @@ +{ + "additionalProperties": false, + "definitions": { + "RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Alias", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/RoutingStrategy" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RoutingStrategy", + "Name" + ], + "typeName": "AWS::GameLift::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-build.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-build.json new file mode 100644 index 0000000000..0d69550edf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-build.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StorageLocation", + "/properties/OperatingSystem" + ], + "definitions": { + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Build", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OperatingSystem": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/S3Location" + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::GameLift::Build" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-fleet.json new file mode 100644 index 0000000000..75d4906f55 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-gamelift-fleet.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PeerVpcAwsAccountId", + "/properties/BuildId", + "/properties/EC2InstanceType", + "/properties/ServerLaunchParameters", + "/properties/CertificateConfiguration", + "/properties/LogPaths", + "/properties/ServerLaunchPath", + "/properties/FleetType", + "/properties/ScriptId", + "/properties/PeerVpcId", + "/properties/InstanceRoleARN" + ], + "definitions": { + "CertificateConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateType": { + "type": "string" + } + }, + "required": [ + "CertificateType" + ], + "type": "object" + }, + "IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "IpRange", + "FromPort", + "ToPort", + "Protocol" + ], + "type": "object" + }, + "ResourceCreationLimitPolicy": { + "additionalProperties": false, + "properties": { + "NewGameSessionsPerCreator": { + "type": "integer" + }, + "PolicyPeriodInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "RuntimeConfiguration": { + "additionalProperties": false, + "properties": { + "GameSessionActivationTimeoutSeconds": { + "type": "integer" + }, + "MaxConcurrentGameSessionActivations": { + "type": "integer" + }, + "ServerProcesses": { + "items": { + "$ref": "#/definitions/ServerProcess" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ServerProcess": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutions": { + "type": "integer" + }, + "LaunchPath": { + "type": "string" + }, + "Parameters": { + "type": "string" + } + }, + "required": [ + "ConcurrentExecutions", + "LaunchPath" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Fleet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BuildId": { + "type": "string" + }, + "CertificateConfiguration": { + "$ref": "#/definitions/CertificateConfiguration" + }, + "Description": { + "type": "string" + }, + "DesiredEC2Instances": { + "type": "integer" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/IpPermission" + }, + "type": "array", + "uniqueItems": true + }, + "EC2InstanceType": { + "cfnRegionSchema": "aws_gamelift_fleet/ec2instancetype_enum", + "type": "string" + }, + "FleetType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceRoleARN": { + "type": "string" + }, + "LogPaths": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MaxSize": { + "type": "integer" + }, + "MetricGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MinSize": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "NewGameSessionProtectionPolicy": { + "type": "string" + }, + "PeerVpcAwsAccountId": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "ResourceCreationLimitPolicy": { + "$ref": "#/definitions/ResourceCreationLimitPolicy" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/RuntimeConfiguration" + }, + "ScriptId": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EC2InstanceType", + "Name" + ], + "typeName": "AWS::GameLift::Fleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-customentitytype.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-customentitytype.json new file mode 100644 index 0000000000..ef28326ab8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-customentitytype.json @@ -0,0 +1,32 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::Glue::CustomEntityType", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContextWords": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RegexString": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::Glue::CustomEntityType" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-datacatalogencryptionsettings.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-datacatalogencryptionsettings.json new file mode 100644 index 0000000000..94664d2615 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-glue-datacatalogencryptionsettings.json @@ -0,0 +1,67 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "ConnectionPasswordEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "ReturnConnectionPasswordEncrypted": { + "type": "boolean" + } + }, + "type": "object" + }, + "DataCatalogEncryptionSettings": { + "additionalProperties": false, + "properties": { + "ConnectionPasswordEncryption": { + "$ref": "#/definitions/ConnectionPasswordEncryption" + }, + "EncryptionAtRest": { + "$ref": "#/definitions/EncryptionAtRest" + } + }, + "type": "object" + }, + "EncryptionAtRest": { + "additionalProperties": false, + "properties": { + "CatalogEncryptionMode": { + "type": "string" + }, + "SseAwsKmsKeyId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Glue::DataCatalogEncryptionSettings", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DataCatalogEncryptionSettings": { + "$ref": "#/definitions/DataCatalogEncryptionSettings" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DataCatalogEncryptionSettings", + "CatalogId" + ], + "typeName": "AWS::Glue::DataCatalogEncryptionSettings" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-guardduty-master.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-guardduty-master.json new file mode 100644 index 0000000000..6a841839da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-guardduty-master.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InvitationId", + "/properties/DetectorId", + "/properties/MasterId" + ], + "description": "Resource Type definition for AWS::GuardDuty::Master", + "primaryIdentifier": [ + "/properties/MasterId" + ], + "properties": { + "DetectorId": { + "type": "string" + }, + "InvitationId": { + "type": "string" + }, + "MasterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/MasterId" + ], + "required": [ + "DetectorId", + "MasterId" + ], + "typeName": "AWS::GuardDuty::Master" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-accesskey.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-accesskey.json new file mode 100644 index 0000000000..eaf023abb9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-accesskey.json @@ -0,0 +1,40 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Serial", + "/properties/UserName" + ], + "description": "Resource Type definition for AWS::IAM::AccessKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretAccessKey": { + "type": "string" + }, + "Serial": { + "type": "integer" + }, + "Status": { + "enum": [ + "Active", + "Inactive" + ], + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecretAccessKey" + ], + "required": [ + "UserName" + ], + "typeName": "AWS::IAM::AccessKey" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-instanceprofile.json new file mode 100644 index 0000000000..a0ff933e37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-instanceprofile.json @@ -0,0 +1,43 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceProfileName", + "/properties/Path" + ], + "description": "Resource Type definition for AWS::IAM::InstanceProfile", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceProfileName": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Roles": { + "items": { + "pattern": "[a-zA-Z0-9+=,.@\\-_]+", + "type": "string" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Roles" + ], + "typeName": "AWS::IAM::InstanceProfile" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-certificate.json new file mode 100644 index 0000000000..1fdf158dd4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-certificate.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateSigningRequest" + ], + "description": "Resource Type definition for AWS::IoT::Certificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "CertificateSigningRequest": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Status", + "CertificateSigningRequest" + ], + "typeName": "AWS::IoT::Certificate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json new file mode 100644 index 0000000000..36682f62a0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyDocument", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::Policy", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "PolicyDocument" + ], + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policyprincipalattachment.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policyprincipalattachment.json new file mode 100644 index 0000000000..1e5d6a7348 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policyprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyName", + "Principal" + ], + "typeName": "AWS::IoT::PolicyPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-thing.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-thing.json new file mode 100644 index 0000000000..8bcc352f41 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-thing.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ThingName" + ], + "definitions": { + "AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IoT::Thing", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AttributePayload" + }, + "Id": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::IoT::Thing" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-gcmchannel.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-thingprincipalattachment.json similarity index 53% rename from src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-gcmchannel.json rename to src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-thingprincipalattachment.json index f193b096ad..e527a23e87 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-gcmchannel.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-thingprincipalattachment.json @@ -1,23 +1,21 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/ApplicationId" + "/properties/Principal", + "/properties/ThingName" ], - "description": "Resource Type definition for AWS::Pinpoint::GCMChannel", + "description": "Resource Type definition for AWS::IoT::ThingPrincipalAttachment", "primaryIdentifier": [ "/properties/Id" ], "properties": { - "ApiKey": { + "Id": { "type": "string" }, - "ApplicationId": { + "Principal": { "type": "string" }, - "Enabled": { - "type": "boolean" - }, - "Id": { + "ThingName": { "type": "string" } }, @@ -25,8 +23,8 @@ "/properties/Id" ], "required": [ - "ApiKey", - "ApplicationId" + "ThingName", + "Principal" ], - "typeName": "AWS::Pinpoint::GCMChannel" + "typeName": "AWS::IoT::ThingPrincipalAttachment" } diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-topicrule.json similarity index 63% rename from src/cfnlint/data/schemas/providers/us_gov_east_1/aws-iot-topicrule.json rename to src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-topicrule.json index 9b9f199097..406a4e7eae 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-topicrule.json @@ -10,9 +10,6 @@ "CloudwatchAlarm": { "$ref": "#/definitions/CloudwatchAlarmAction" }, - "CloudwatchLogs": { - "$ref": "#/definitions/CloudwatchLogsAction" - }, "CloudwatchMetric": { "$ref": "#/definitions/CloudwatchMetricAction" }, @@ -40,21 +37,12 @@ "IotSiteWise": { "$ref": "#/definitions/IotSiteWiseAction" }, - "Kafka": { - "$ref": "#/definitions/KafkaAction" - }, "Kinesis": { "$ref": "#/definitions/KinesisAction" }, "Lambda": { "$ref": "#/definitions/LambdaAction" }, - "Location": { - "$ref": "#/definitions/LocationAction" - }, - "OpenSearch": { - "$ref": "#/definitions/OpenSearchAction" - }, "Republish": { "$ref": "#/definitions/RepublishAction" }, @@ -69,9 +57,6 @@ }, "StepFunctions": { "$ref": "#/definitions/StepFunctionsAction" - }, - "Timestream": { - "$ref": "#/definitions/TimestreamAction" } }, "type": "object" @@ -128,19 +113,6 @@ }, "type": "object" }, - "CannedAccessControlList": { - "enum": [ - "private", - "public-read", - "public-read-write", - "aws-exec-read", - "authenticated-read", - "bucket-owner-read", - "bucket-owner-full-control", - "log-delivery-write" - ], - "type": "string" - }, "CloudwatchAlarmAction": { "additionalProperties": false, "properties": { @@ -165,22 +137,6 @@ ], "type": "object" }, - "CloudwatchLogsAction": { - "additionalProperties": false, - "properties": { - "LogGroupName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "LogGroupName", - "RoleArn" - ], - "type": "object" - }, "CloudwatchMetricAction": { "additionalProperties": false, "properties": { @@ -294,9 +250,6 @@ "FirehoseAction": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" - }, "DeliveryStreamName": { "type": "string" }, @@ -366,9 +319,6 @@ "IotAnalyticsAction": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" - }, "ChannelName": { "type": "string" }, @@ -385,9 +335,6 @@ "IotEventsAction": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" - }, "InputName": { "type": "string" }, @@ -424,39 +371,6 @@ ], "type": "object" }, - "KafkaAction": { - "additionalProperties": false, - "properties": { - "ClientProperties": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "type": "string" - } - }, - "type": "object" - }, - "DestinationArn": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Partition": { - "type": "string" - }, - "Topic": { - "type": "string" - } - }, - "required": [ - "DestinationArn", - "Topic", - "ClientProperties" - ], - "type": "object" - }, "KinesisAction": { "additionalProperties": false, "properties": { @@ -485,65 +399,6 @@ }, "type": "object" }, - "LocationAction": { - "additionalProperties": false, - "properties": { - "DeviceId": { - "type": "string" - }, - "Latitude": { - "type": "string" - }, - "Longitude": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Timestamp": { - "$ref": "#/definitions/Timestamp" - }, - "TrackerName": { - "type": "string" - } - }, - "required": [ - "RoleArn", - "TrackerName", - "DeviceId", - "Latitude", - "Longitude" - ], - "type": "object" - }, - "OpenSearchAction": { - "additionalProperties": false, - "properties": { - "Endpoint": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Index": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type", - "Endpoint", - "Index", - "Id", - "RoleArn" - ], - "type": "object" - }, "PutAssetPropertyValueEntry": { "additionalProperties": false, "properties": { @@ -587,9 +442,6 @@ "RepublishAction": { "additionalProperties": false, "properties": { - "Headers": { - "$ref": "#/definitions/RepublishActionHeaders" - }, "Qos": { "type": "integer" }, @@ -606,52 +458,12 @@ ], "type": "object" }, - "RepublishActionHeaders": { - "additionalProperties": false, - "properties": { - "ContentType": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "CorrelationData": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "MessageExpiry": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "PayloadFormatIndicator": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "ResponseTopic": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "UserProperties": { - "$ref": "#/definitions/UserProperties" - } - }, - "type": "object" - }, - "RoleArn": { - "type": "string" - }, "S3Action": { "additionalProperties": false, "properties": { "BucketName": { "type": "string" }, - "CannedAcl": { - "$ref": "#/definitions/CannedAccessControlList" - }, "Key": { "type": "string" }, @@ -743,104 +555,6 @@ ], "type": "object" }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "Timestamp": { - "additionalProperties": false, - "properties": { - "Unit": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value" - ], - "type": "object" - }, - "TimestreamAction": { - "additionalProperties": false, - "properties": { - "DatabaseName": { - "type": "string" - }, - "Dimensions": { - "$ref": "#/definitions/TimestreamDimensionsList" - }, - "RoleArn": { - "type": "string" - }, - "TableName": { - "type": "string" - }, - "Timestamp": { - "$ref": "#/definitions/TimestreamTimestamp" - } - }, - "required": [ - "RoleArn", - "DatabaseName", - "TableName", - "Dimensions" - ], - "type": "object" - }, - "TimestreamDimension": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "TimestreamDimensionsList": { - "items": { - "$ref": "#/definitions/TimestreamDimension" - }, - "maxItems": 128, - "minItems": 1, - "type": "array" - }, - "TimestreamTimestamp": { - "additionalProperties": false, - "properties": { - "Unit": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Unit" - ], - "type": "object" - }, "TopicRulePayload": { "additionalProperties": false, "properties": { @@ -848,7 +562,8 @@ "items": { "$ref": "#/definitions/Action" }, - "type": "array" + "type": "array", + "uniqueItems": true }, "AwsIotSqlVersion": { "type": "string" @@ -867,101 +582,37 @@ } }, "required": [ + "RuleDisabled", "Actions", "Sql" ], "type": "object" - }, - "UserProperties": { - "items": { - "$ref": "#/definitions/UserProperty" - }, - "maxItems": 100, - "minItems": 1, - "type": "array" - }, - "UserProperty": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "Value": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" } }, "description": "Resource Type definition for AWS::IoT::TopicRule", - "handlers": { - "create": { - "permissions": [ - "iam:PassRole", - "iot:CreateTopicRule", - "iot:GetTopicRule" - ] - }, - "delete": { - "permissions": [ - "iot:GetTopicRule", - "iot:DeleteTopicRule" - ] - }, - "list": { - "permissions": [ - "iot:ListTopicRules" - ] - }, - "read": { - "permissions": [ - "iot:GetTopicRule", - "iot:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iot:ReplaceTopicRule", - "iot:ListTagsForResource", - "iot:TagResource", - "iot:UntagResource" - ] - } - }, "primaryIdentifier": [ - "/properties/RuleName" + "/properties/Id" ], "properties": { "Arn": { "type": "string" }, - "RuleName": { + "Id": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "RuleName": { + "type": "string" }, "TopicRulePayload": { "$ref": "#/definitions/TopicRulePayload" } }, "readOnlyProperties": [ + "/properties/Id", "/properties/Arn" ], "required": [ "TopicRulePayload" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "typeName": "AWS::IoT::TopicRule" } diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-kinesis-streamconsumer.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kinesis-streamconsumer.json new file mode 100644 index 0000000000..3507f8a448 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kinesis-streamconsumer.json @@ -0,0 +1,42 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StreamARN", + "/properties/ConsumerName" + ], + "description": "Resource Type definition for AWS::Kinesis::StreamConsumer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ConsumerARN": { + "type": "string" + }, + "ConsumerCreationTimestamp": { + "type": "string" + }, + "ConsumerName": { + "type": "string" + }, + "ConsumerStatus": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StreamARN": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ConsumerStatus", + "/properties/Id", + "/properties/ConsumerARN", + "/properties/ConsumerCreationTimestamp" + ], + "required": [ + "ConsumerName", + "StreamARN" + ], + "typeName": "AWS::Kinesis::StreamConsumer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-alias.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-alias.json new file mode 100644 index 0000000000..6a73e643b9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-kms-alias.json @@ -0,0 +1,59 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AliasName" + ], + "description": "The AWS::KMS::Alias resource specifies a display name for an AWS KMS key in AWS Key Management Service (AWS KMS). You can use an alias to identify an AWS KMS key in cryptographic operations.", + "handlers": { + "create": { + "permissions": [ + "kms:CreateAlias" + ] + }, + "delete": { + "permissions": [ + "kms:DeleteAlias" + ] + }, + "list": { + "permissions": [ + "kms:ListAliases" + ] + }, + "read": { + "permissions": [ + "kms:ListAliases" + ] + }, + "update": { + "permissions": [ + "kms:UpdateAlias" + ] + } + }, + "primaryIdentifier": [ + "/properties/AliasName" + ], + "properties": { + "AliasName": { + "description": "Specifies the alias name. This value must begin with alias/ followed by a name, such as alias/ExampleAlias. The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved for AWS managed keys.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(alias/)[a-zA-Z0-9:/_-]+$", + "type": "string" + }, + "TargetKeyId": { + "description": "Identifies the AWS KMS key to which the alias refers. Specify the key ID or the Amazon Resource Name (ARN) of the AWS KMS key. You cannot specify another alias. For help finding the key ID and ARN, see Finding the Key ID and ARN in the AWS Key Management Service Developer Guide.", + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AliasName", + "TargetKeyId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "taggable": false, + "typeName": "AWS::KMS::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-lambda-permission.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-lambda-permission.json new file mode 100644 index 0000000000..f3d98e2735 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-lambda-permission.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceAccount", + "/properties/FunctionUrlAuthType", + "/properties/SourceArn", + "/properties/Principal", + "/properties/Action", + "/properties/FunctionName", + "/properties/EventSourceToken", + "/properties/PrincipalOrgID" + ], + "description": "Resource Type definition for AWS::Lambda::Permission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Action": { + "type": "string" + }, + "EventSourceToken": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionUrlAuthType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "PrincipalOrgID": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "Action", + "Principal" + ], + "typeName": "AWS::Lambda::Permission" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-instance.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-instance.json new file mode 100644 index 0000000000..bb049a1011 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-instance.json @@ -0,0 +1,299 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tenancy", + "/properties/VirtualizationType", + "/properties/TimeBasedAutoScaling", + "/properties/RootDeviceType", + "/properties/AutoScalingType", + "/properties/StackId", + "/properties/AvailabilityZone", + "/properties/SubnetId", + "/properties/BlockDeviceMappings", + "/properties/EbsOptimized" + ], + "definitions": { + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "TimeBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "Friday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Monday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Saturday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Sunday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Thursday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Tuesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Wednesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Instance", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "AmiId": { + "type": "string" + }, + "Architecture": { + "type": "string" + }, + "AutoScalingType": { + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticIps": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Hostname": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "LayerIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Os": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateIp": { + "type": "string" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RootDeviceType": { + "type": "string" + }, + "SshKeyName": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tenancy": { + "type": "string" + }, + "TimeBasedAutoScaling": { + "$ref": "#/definitions/TimeBasedAutoScaling" + }, + "VirtualizationType": { + "type": "string" + }, + "Volumes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/PublicIp", + "/properties/Id", + "/properties/PublicDnsName", + "/properties/PrivateDnsName", + "/properties/PrivateIp" + ], + "required": [ + "LayerIds", + "InstanceType", + "StackId" + ], + "typeName": "AWS::OpsWorks::Instance" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-layer.json new file mode 100644 index 0000000000..0c7549d975 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-layer.json @@ -0,0 +1,262 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StackId", + "/properties/Type" + ], + "definitions": { + "AutoScalingThresholds": { + "additionalProperties": false, + "properties": { + "CpuThreshold": { + "type": "number" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "InstanceCount": { + "type": "integer" + }, + "LoadThreshold": { + "type": "number" + }, + "MemoryThreshold": { + "type": "number" + }, + "ThresholdsWaitTime": { + "type": "integer" + } + }, + "type": "object" + }, + "LifecycleEventConfiguration": { + "additionalProperties": false, + "properties": { + "ShutdownEventConfiguration": { + "$ref": "#/definitions/ShutdownEventConfiguration" + } + }, + "type": "object" + }, + "LoadBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "DownScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + }, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + } + }, + "type": "object" + }, + "Recipes": { + "additionalProperties": false, + "properties": { + "Configure": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Deploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Setup": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Shutdown": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Undeploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ShutdownEventConfiguration": { + "additionalProperties": false, + "properties": { + "DelayUntilElbConnectionsDrained": { + "type": "boolean" + }, + "ExecutionTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "MountPoint": { + "type": "string" + }, + "NumberOfDisks": { + "type": "integer" + }, + "RaidLevel": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Layer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomInstanceProfileArn": { + "type": "string" + }, + "CustomJson": { + "type": "object" + }, + "CustomRecipes": { + "$ref": "#/definitions/Recipes" + }, + "CustomSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "$ref": "#/definitions/LifecycleEventConfiguration" + }, + "LoadBasedAutoScaling": { + "$ref": "#/definitions/LoadBasedAutoScaling" + }, + "Name": { + "type": "string" + }, + "Packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Shortname": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/VolumeConfiguration" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EnableAutoHealing", + "Type", + "AutoAssignElasticIps", + "Shortname", + "AutoAssignPublicIps", + "Name", + "StackId" + ], + "typeName": "AWS::OpsWorks::Layer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-stack.json new file mode 100644 index 0000000000..f3862f3e29 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-stack.json @@ -0,0 +1,230 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CloneAppIds", + "/properties/ClonePermissions", + "/properties/ServiceRoleArn", + "/properties/VpcId", + "/properties/SourceStackId" + ], + "definitions": { + "ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "RdsDbInstanceArn", + "DbUser" + ], + "type": "object" + }, + "Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "VpcId": [ + "DefaultSubnetId" + ] + }, + "description": "Resource Type definition for AWS::OpsWorks::Stack", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/ElasticIp" + }, + "type": "array", + "uniqueItems": true + }, + "HostnameTheme": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/RdsDbInstance" + }, + "type": "array", + "uniqueItems": true + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DefaultInstanceProfileArn", + "ServiceRoleArn", + "Name" + ], + "typeName": "AWS::OpsWorks::Stack" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", + "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", + "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", + "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", + "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/OptionGroupName": "$lowercase(OptionGroupName)", + "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", + "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/Endpoint/HostedZoneId", + "/properties/DbiResourceId", + "/properties/DBInstanceArn", + "/properties/DBSystemId", + "/properties/MasterUserSecret/SecretArn", + "/properties/CertificateDetails/CAIdentifier", + "/properties/CertificateDetails/ValidTill" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::RDS::DBInstance", + "writeOnlyProperties": [ + "/properties/AllowMajorVersionUpgrade", + "/properties/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-redshift-cluster.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-redshift-cluster.json new file mode 100644 index 0000000000..370f799510 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-redshift-cluster.json @@ -0,0 +1,195 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/MasterUsername", + "/properties/OwnerAccount", + "/properties/SnapshotIdentifier", + "/properties/Encrypted", + "/properties/Port", + "/properties/DBName", + "/properties/SnapshotClusterIdentifier", + "/properties/AvailabilityZone", + "/properties/ClusterSubnetGroupName", + "/properties/ClusterIdentifier", + "/properties/ElasticIp" + ], + "definitions": { + "LoggingProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllowVersionUpgrade": { + "type": "boolean" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "AvailabilityZone": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterParameterGroupName": { + "type": "string" + }, + "ClusterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ClusterSubnetGroupName": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "ClusterVersion": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "ElasticIp": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Endpoint": { + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "EndpointAddress": { + "type": "string" + }, + "EndpointPort": { + "type": "string" + }, + "HsmClientCertificateIdentifier": { + "type": "string" + }, + "HsmConfigurationIdentifier": { + "type": "string" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/LoggingProperties" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "NodeType": { + "cfnRegionSchema": "aws_redshift_cluster/nodetype_enum", + "type": "string" + }, + "NumberOfNodes": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "OwnerAccount": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Endpoint/Port", + "/properties/Endpoint/Address" + ], + "required": [ + "MasterUserPassword", + "NodeType", + "MasterUsername", + "DBName", + "ClusterType" + ], + "typeName": "AWS::Redshift::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-redshift-clusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-redshift-clusterparametergroup.json new file mode 100644 index 0000000000..d05a398a2c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-redshift-clusterparametergroup.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ParameterGroupFamily", + "/properties/Description" + ], + "definitions": { + "Parameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterParameterGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ParameterGroupFamily": { + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/Parameter" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "ParameterGroupFamily" + ], + "typeName": "AWS::Redshift::ClusterParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-redshift-clustersubnetgroup.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-redshift-clustersubnetgroup.json new file mode 100644 index 0000000000..855e1344e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-redshift-clustersubnetgroup.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterSubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::Redshift::ClusterSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53-healthcheck.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53-healthcheck.json new file mode 100644 index 0000000000..aae9580ade --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53-healthcheck.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "definitions": { + "AlarmIdentifier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region", + "Name" + ], + "type": "object" + }, + "HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "$ref": "#/definitions/AlarmIdentifier" + }, + "ChildHealthChecks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableSNI": { + "type": "boolean" + }, + "FailureThreshold": { + "type": "integer" + }, + "FullyQualifiedDomainName": { + "type": "string" + }, + "HealthThreshold": { + "type": "integer" + }, + "IPAddress": { + "type": "string" + }, + "InsufficientDataHealthStatus": { + "type": "string" + }, + "Inverted": { + "type": "boolean" + }, + "MeasureLatency": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RequestInterval": { + "type": "integer" + }, + "ResourcePath": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "HealthCheckTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HealthCheck", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HealthCheckConfig": { + "$ref": "#/definitions/HealthCheckConfig", + "cfnSchema": [ + "aws_route53_healthcheck/healthcheckconfig_type_inclusive" + ] + }, + "HealthCheckTags": { + "items": { + "$ref": "#/definitions/HealthCheckTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "HealthCheckConfig" + ], + "typeName": "AWS::Route53::HealthCheck" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4f589ca0c9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53-hostedzone.json @@ -0,0 +1,108 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "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": [ + "VPCRegion", + "VPCId" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HostedZone", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "required": [ + "Name" + ], + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53resolver-resolverrule.json new file mode 100644 index 0000000000..953bf586fb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53resolver-resolverrule.json @@ -0,0 +1,90 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleType", + "/properties/DomainName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53Resolver::ResolverRule", + "primaryIdentifier": [ + "/properties/ResolverRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResolverEndpointId": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "RuleType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetIps": { + "items": { + "$ref": "#/definitions/TargetAddress" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ResolverRuleId", + "/properties/Arn" + ], + "required": [ + "DomainName", + "RuleType" + ], + "typeName": "AWS::Route53Resolver::ResolverRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53resolver-resolverruleassociation.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53resolver-resolverruleassociation.json new file mode 100644 index 0000000000..6b514ce0da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-route53resolver-resolverruleassociation.json @@ -0,0 +1,34 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/VPCId", + "/properties/ResolverRuleId" + ], + "description": "Resource Type definition for AWS::Route53Resolver::ResolverRuleAssociation", + "primaryIdentifier": [ + "/properties/ResolverRuleAssociationId" + ], + "properties": { + "Name": { + "type": "string" + }, + "ResolverRuleAssociationId": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "VPCId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ResolverRuleAssociationId" + ], + "required": [ + "VPCId", + "ResolverRuleId" + ], + "typeName": "AWS::Route53Resolver::ResolverRuleAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-secretsmanager-secrettargetattachment.json new file mode 100644 index 0000000000..ace966c437 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-secretsmanager-secrettargetattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretId": { + "type": "string" + }, + "TargetId": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecretId", + "TargetType", + "TargetId" + ], + "typeName": "AWS::SecretsManager::SecretTargetAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-acceptedportfolioshare.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-acceptedportfolioshare.json new file mode 100644 index 0000000000..767e95ecfd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-acceptedportfolioshare.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId" + ], + "typeName": "AWS::ServiceCatalog::AcceptedPortfolioShare" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-portfolio.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-portfolio.json new file mode 100644 index 0000000000..79797255b4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-portfolio.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ServiceCatalog::Portfolio", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioName": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/PortfolioName" + ], + "required": [ + "ProviderName", + "DisplayName" + ], + "typeName": "AWS::ServiceCatalog::Portfolio" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-portfolioprincipalassociation.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-portfolioprincipalassociation.json new file mode 100644 index 0000000000..2ae9e8819b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-portfolioprincipalassociation.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId", + "/properties/PrincipalARN", + "/properties/PrincipalType" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "PrincipalARN": { + "type": "string" + }, + "PrincipalType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PrincipalARN", + "PortfolioId", + "PrincipalType" + ], + "typeName": "AWS::ServiceCatalog::PortfolioPrincipalAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-portfolioproductassociation.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-portfolioproductassociation.json new file mode 100644 index 0000000000..ba9090e0f3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-portfolioproductassociation.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/SourcePortfolioId", + "/properties/PortfolioId", + "/properties/ProductId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "SourcePortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId", + "ProductId" + ], + "typeName": "AWS::ServiceCatalog::PortfolioProductAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-tagoptionassociation.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-tagoptionassociation.json new file mode 100644 index 0000000000..6ab91b4165 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-servicecatalog-tagoptionassociation.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceId", + "/properties/TagOptionId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "TagOptionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TagOptionId", + "ResourceId" + ], + "typeName": "AWS::ServiceCatalog::TagOptionAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-activity.json new file mode 100644 index 0000000000..15981c2a5c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-stepfunctions-activity.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for Activity", + "handlers": { + "create": { + "permissions": [ + "states:CreateActivity", + "states:TagResource" + ] + }, + "delete": { + "permissions": [ + "states:DescribeActivity", + "states:DeleteActivity" + ] + }, + "list": { + "permissions": [ + "states:ListActivities" + ] + }, + "read": { + "permissions": [ + "states:DescribeActivity", + "states:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "states:ListTagsForResource", + "states:TagResource", + "states:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagsEntry" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::StepFunctions::Activity" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-ipset.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-ipset.json new file mode 100644 index 0000000000..198879fe09 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-ipset.json @@ -0,0 +1,50 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "IPSetDescriptor": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::IPSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "IPSetDescriptors": { + "items": { + "$ref": "#/definitions/IPSetDescriptor" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "typeName": "AWS::WAF::IPSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-rule.json new file mode 100644 index 0000000000..5ae8e6b6b7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-rule.json @@ -0,0 +1,68 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "enum": [ + "IPMatch", + "ByteMatch", + "SqlInjectionMatch", + "GeoMatch", + "SizeConstraint", + "XssMatch", + "RegexMatch" + ], + "type": "string" + } + }, + "required": [ + "Type", + "DataId", + "Negated" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::Rule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/Predicate" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "Name" + ], + "typeName": "AWS::WAF::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-sizeconstraintset.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-sizeconstraintset.json new file mode 100644 index 0000000000..cc2fdb3cd9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-sizeconstraintset.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "type": "integer" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "Size", + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::SizeConstraintSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/SizeConstraint" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SizeConstraints", + "Name" + ], + "typeName": "AWS::WAF::SizeConstraintSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-webacl.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-webacl.json new file mode 100644 index 0000000000..d95f27d59b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-webacl.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "ActivatedRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/WafAction" + }, + "Priority": { + "type": "integer" + }, + "RuleId": { + "type": "string" + } + }, + "required": [ + "Priority", + "RuleId" + ], + "type": "object" + }, + "WafAction": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::WebACL", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DefaultAction": { + "$ref": "#/definitions/WafAction" + }, + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ActivatedRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "DefaultAction", + "Name" + ], + "typeName": "AWS::WAF::WebACL" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-xssmatchset.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-xssmatchset.json new file mode 100644 index 0000000000..a7cd951419 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-waf-xssmatchset.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::XssMatchSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/XssMatchTuple" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "XssMatchTuples", + "Name" + ], + "typeName": "AWS::WAF::XssMatchSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-wafv2-rulegroup.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-wafv2-rulegroup.json new file mode 100644 index 0000000000..dd0cd3570b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-wafv2-rulegroup.json @@ -0,0 +1,1241 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Count traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the RuleGroup", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the RuleGroup.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelSummary": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP" + ], + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of RuleGroup that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront RuleGroup, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the RuleGroup.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a RuleGroup, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a RuleGroup, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the RuleGroup with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a RuleGroup, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteRuleGroup", + "wafv2:GetRuleGroup" + ] + }, + "list": { + "permissions": [ + "wafv2:listRuleGroups" + ] + }, + "read": { + "permissions": [ + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AvailableLabels": { + "description": "Collection of Available Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "ConsumedLabels": { + "description": "Collection of Consumed Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/LabelNamespace", + "/properties/AvailableLabels/*/Name", + "/properties/ConsumedLabels/*/Name" + ], + "required": [ + "Capacity", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::RuleGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-wafv2-webacl.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-wafv2-webacl.json new file mode 100644 index 0000000000..8153b3010f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-wafv2-webacl.json @@ -0,0 +1,1699 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AWSManagedRulesATPRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Account Takeover Prevention managed rule group in the web ACL", + "properties": { + "LoginPath": { + "type": "string" + }, + "RequestInspection": { + "$ref": "#/definitions/RequestInspection" + }, + "ResponseInspection": { + "$ref": "#/definitions/ResponseInspection" + } + }, + "required": [ + "LoginPath" + ], + "type": "object" + }, + "AWSManagedRulesBotControlRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Bot Control managed rule group in the web ACL", + "properties": { + "InspectionLevel": { + "enum": [ + "COMMON", + "TARGETED" + ], + "type": "string" + } + }, + "required": [ + "InspectionLevel" + ], + "type": "object" + }, + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AssociationConfig": { + "additionalProperties": false, + "description": "AssociationConfig for body inspection", + "properties": { + "RequestBody": { + "$ref": "#/definitions/RequestBody" + } + }, + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "DefaultAction": { + "additionalProperties": false, + "description": "Default Action WebACL will take against ingress traffic when there is no matching Rule.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + } + }, + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the WebACL", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the WebACL.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "ExcludedRule": { + "additionalProperties": false, + "description": "Excluded Rule in the RuleGroup or ManagedRuleGroup will not be evaluated.", + "properties": { + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "FieldIdentifier": { + "additionalProperties": false, + "properties": { + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "Identifier" + ], + "type": "object" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "ManagedRuleGroupConfig": { + "additionalProperties": false, + "description": "ManagedRuleGroupConfig.", + "properties": { + "AWSManagedRulesATPRuleSet": { + "$ref": "#/definitions/AWSManagedRulesATPRuleSet" + }, + "AWSManagedRulesBotControlRuleSet": { + "$ref": "#/definitions/AWSManagedRulesBotControlRuleSet" + }, + "LoginPath": { + "maxLength": 256, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "type": "object" + }, + "ManagedRuleGroupStatement": { + "additionalProperties": false, + "properties": { + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "ManagedRuleGroupConfigs": { + "description": "Collection of ManagedRuleGroupConfig.", + "items": { + "$ref": "#/definitions/ManagedRuleGroupConfig" + }, + "type": "array" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + }, + "VendorName": { + "type": "string" + }, + "Version": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[\\w#:\\.\\-/]+$", + "type": "string" + } + }, + "required": [ + "VendorName", + "Name" + ], + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OverrideAction": { + "additionalProperties": false, + "description": "Override a RuleGroup or ManagedRuleGroup behavior. This can only be applied to Rule that has RuleGroupReferenceStatement or ManagedRuleGroupReferenceStatement.", + "properties": { + "Count": { + "description": "Count traffic towards application.", + "type": "object" + }, + "None": { + "description": "Keep the RuleGroup or ManagedRuleGroup behavior as is.", + "type": "object" + } + }, + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "QueryString": { + "type": "object" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP" + ], + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RequestBody": { + "additionalProperties": false, + "description": "Map of AssociatedResourceType and RequestBodyAssociatedResourceTypeConfig", + "patternProperties": { + "^(CLOUDFRONT)$": { + "$ref": "#/definitions/RequestBodyAssociatedResourceTypeConfig" + } + }, + "type": "object" + }, + "RequestBodyAssociatedResourceTypeConfig": { + "additionalProperties": false, + "description": "Configures the inspection size in the request body.", + "properties": { + "DefaultSizeInspectionLimit": { + "$ref": "#/definitions/SizeInspectionLimit" + } + }, + "required": [ + "DefaultSizeInspectionLimit" + ], + "type": "object" + }, + "RequestInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login requests", + "properties": { + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "PayloadType", + "UsernameField", + "PasswordField" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login responses", + "properties": { + "BodyContains": { + "$ref": "#/definitions/ResponseInspectionBodyContains" + }, + "Header": { + "$ref": "#/definitions/ResponseInspectionHeader" + }, + "Json": { + "$ref": "#/definitions/ResponseInspectionJson" + }, + "StatusCode": { + "$ref": "#/definitions/ResponseInspectionStatusCode" + } + }, + "type": "object" + }, + "ResponseInspectionBodyContains": { + "additionalProperties": false, + "description": "Response body contents that indicate success or failure of a login request", + "properties": { + "FailureStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "SuccessStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessStrings", + "FailureStrings" + ], + "type": "object" + }, + "ResponseInspectionHeader": { + "additionalProperties": false, + "description": "Response headers that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 200, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Name", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionJson": { + "additionalProperties": false, + "description": "Response JSON that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Identifier", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionStatusCode": { + "additionalProperties": false, + "description": "Response status codes that indicate success or failure of a login request", + "properties": { + "FailureCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "SuccessCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessCodes", + "FailureCodes" + ], + "type": "object" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of WebACL that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "OverrideAction": { + "$ref": "#/definitions/OverrideAction" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleActionOverride": { + "additionalProperties": false, + "description": "Action override for rules in the rule group.", + "properties": { + "ActionToUse": { + "$ref": "#/definitions/RuleAction" + }, + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name", + "ActionToUse" + ], + "type": "object" + }, + "RuleGroupReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront WebACL, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SizeInspectionLimit": { + "enum": [ + "KB_16", + "KB_32", + "KB_48", + "KB_64" + ], + "type": "string" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "ManagedRuleGroupStatement": { + "$ref": "#/definitions/ManagedRuleGroupStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "RuleGroupReferenceStatement": { + "$ref": "#/definitions/RuleGroupReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "TokenDomains": { + "description": "List of domains to accept in web request tokens, in addition to the domain of the protected resource.", + "items": { + "maxLength": 253, + "minLength": 1, + "pattern": "^[\\w\\.\\-/]+$", + "type": "string" + }, + "type": "array" + }, + "UriPath": { + "type": "object" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the WebACL.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteWebACL", + "wafv2:GetWebACL" + ] + }, + "list": { + "permissions": [ + "wafv2:listWebACLs" + ] + }, + "read": { + "permissions": [ + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AssociationConfig": { + "$ref": "#/definitions/AssociationConfig" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "DefaultAction": { + "$ref": "#/definitions/DefaultAction" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "TokenDomains": { + "$ref": "#/definitions/TokenDomains" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Capacity", + "/properties/Id", + "/properties/LabelNamespace" + ], + "required": [ + "DefaultAction", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::WebACL" +} 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 a612d7baa3..7e9109c487 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -116,6 +116,7 @@ "AWS::Macie::CustomDataIdentifier", "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -189,6 +190,7 @@ "AWS::Transfer::Workflow", "AWS::QLDB::Ledger", "AWS::S3::AccessGrant", + "AWS::NeptuneGraph::PrivateGraphEndpoint", "AWS::AppConfig::DeploymentStrategy", "AWS::Glue::DevEndpoint", "AWS::SageMaker::ModelPackage", @@ -398,6 +400,7 @@ "AWS::AppStream::ImageBuilder", "AWS::BackupGateway::Hypervisor", "AWS::Lightsail::Disk", + "AWS::Connect::PredefinedAttribute", "AWS::IAM::Policy", "AWS::DataBrew::Schedule", "AWS::AppRunner::Service", @@ -413,6 +416,7 @@ "AWS::RoboMaker::Fleet", "AWS::EC2::VolumeAttachment", "AWS::Glue::SecurityConfiguration", + "AWS::NetworkFirewall::TLSInspectionConfiguration", "AWS::OpenSearchServerless::Collection", "AWS::DataBrew::Ruleset", "AWS::GameLift::MatchmakingConfiguration", @@ -603,6 +607,7 @@ "AWS::EMRContainers::VirtualCluster", "AWS::EC2::SecurityGroup", "AWS::QuickSight::Theme", + "AWS::NeptuneGraph::Graph", "AWS::EC2::CapacityReservationFleet", "AWS::OpsWorks::Volume", "AWS::SES::EmailIdentity", @@ -867,6 +872,7 @@ "AWS::WAF::XssMatchSet", "AWS::EC2::VerifiedAccessTrustProvider", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::Pinpoint::EmailTemplate", "AWS::MediaLive::Multiplex", "AWS::Scheduler::ScheduleGroup", @@ -1169,6 +1175,7 @@ "aws-robomaker-simulationapplicationversion.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-transfer-certificate.json", + "aws-pinpoint-gcmchannel.json", "aws-connect-instance.json", "aws-apigateway-documentationpart.json", "aws-cloudwatch-compositealarm.json", @@ -1211,6 +1218,7 @@ "aws-macie-customdataidentifier.json", "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -1256,7 +1264,6 @@ "aws-docdb-dbinstance.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", - "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-appstream-appblockbuilder.json", @@ -1264,6 +1271,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1347,7 +1355,6 @@ "aws-ssm-document.json", "aws-iam-role.json", "aws-dms-endpoint.json", - "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", @@ -1371,6 +1378,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1394,6 +1402,7 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1503,6 +1512,7 @@ "aws-robomaker-fleet.json", "aws-ec2-volumeattachment.json", "aws-glue-securityconfiguration.json", + "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-opensearchserverless-collection.json", "aws-databrew-ruleset.json", "aws-gamelift-matchmakingconfiguration.json", @@ -1573,6 +1583,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-omics-variantstore.json", "aws-appsync-apikey.json", @@ -1729,6 +1740,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1770,7 +1782,6 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", - "aws-iotsitewise-gateway.json", "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", "aws-robomaker-robotapplication.json", @@ -1944,6 +1955,7 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-predefinedattribute.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-predefinedattribute.json new file mode 100644 index 0000000000..0c16367e0b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-predefinedattribute.json @@ -0,0 +1,100 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceArn", + "/properties/Name" + ], + "definitions": { + "StringList": { + "description": "Predefined attribute values of type string list.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Value" + }, + "maxItems": 128, + "minItems": 1, + "type": "array" + }, + "Value": { + "description": "Textual or numeric value that describes an attribute.", + "maxLength": 64, + "minLength": 1, + "type": "string" + } + }, + "description": "Resource Type definition for AWS::Connect::PredefinedAttribute", + "handlers": { + "create": { + "permissions": [ + "connect:CreatePredefinedAttribute" + ] + }, + "delete": { + "permissions": [ + "connect:DeletePredefinedAttribute" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListPredefinedAttributes" + ] + }, + "read": { + "permissions": [ + "connect:DescribePredefinedAttribute" + ] + }, + "update": { + "permissions": [ + "connect:UpdatePredefinedAttribute" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceArn", + "/properties/Name" + ], + "properties": { + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Name": { + "description": "The name of the predefined attribute.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Values": { + "additionalProperties": false, + "description": "The values of a predefined attribute.", + "properties": { + "StringList": { + "$ref": "#/definitions/StringList" + } + }, + "type": "object" + } + }, + "required": [ + "InstanceArn", + "Name", + "Values" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Connect::PredefinedAttribute" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-user.json index b949608f4f..546e21910e 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-user.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-connect-user.json @@ -6,6 +6,18 @@ "minimum": 0, "type": "integer" }, + "AttributeName": { + "description": "The name of user's proficiency. You must use name of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "description": "The value of user's proficiency. You must use value of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, "AutoAccept": { "description": "The Auto accept setting.", "type": "boolean" @@ -26,6 +38,12 @@ "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", "type": "string" }, + "Level": { + "description": "The level of the proficiency. The valid values are 1, 2, 3, 4 and 5.", + "maximum": 5.0, + "minimum": 1.0, + "type": "number" + }, "Mobile": { "description": "The mobile phone number.", "pattern": "^\\+[1-9]\\d{1,14}$", @@ -115,6 +133,27 @@ "PhoneType" ], "type": "object" + }, + "UserProficiency": { + "additionalProperties": false, + "description": "Proficiency of a user.", + "properties": { + "AttributeName": { + "$ref": "#/definitions/AttributeName" + }, + "AttributeValue": { + "$ref": "#/definitions/AttributeValue" + }, + "Level": { + "$ref": "#/definitions/Level" + } + }, + "required": [ + "AttributeName", + "AttributeValue", + "Level" + ], + "type": "object" } }, "description": "Resource Type definition for AWS::Connect::User", @@ -215,6 +254,14 @@ "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", "type": "string" }, + "UserProficiencies": { + "description": "One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/UserProficiency" + }, + "type": "array" + }, "Username": { "description": "The user name for the account.", "maxLength": 64, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-image.json deleted file mode 100644 index 223d64e03e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/Workflows", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 3cf9b2a4a9..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-workflow.json deleted file mode 100644 index 5c25c2361b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-imagebuilder-workflow.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Version", - "/properties/ChangeDescription", - "/properties/Description", - "/properties/Data", - "/properties/Uri", - "/properties/Type", - "/properties/KmsKeyId", - "/properties/Tags" - ], - "description": "Resource schema for AWS::ImageBuilder::Workflow", - "handlers": { - "create": { - "permissions": [ - "iam:GetRole", - "kms:GenerateDataKey*", - "kms:Encrypt", - "kms:Decrypt", - "s3:GetObject", - "s3:HeadBucket", - "s3:GetBucketLocation", - "imagebuilder:TagResource", - "imagebuilder:GetWorkflow", - "imagebuilder:CreateWorkflow" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:GetWorkflow", - "imagebuilder:UnTagResource", - "imagebuilder:DeleteWorkflow" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Data" - ] - }, - { - "required": [ - "Uri" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the workflow.", - "type": "string" - }, - "ChangeDescription": { - "description": "The change description of the workflow.", - "type": "string" - }, - "Data": { - "description": "The data of the workflow.", - "maxLength": 16000, - "minLength": 1, - "type": "string" - }, - "Description": { - "description": "The description of the workflow.", - "type": "string" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the workflow.", - "type": "string" - }, - "Name": { - "description": "The name of the workflow.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the workflow.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", - "enum": [ - "BUILD", - "TEST", - "DISTRIBUTION" - ], - "type": "string" - }, - "Uri": { - "description": "The uri of the workflow.", - "type": "string" - }, - "Version": { - "description": "The version of the workflow.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Type", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Workflow", - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iotsitewise-gateway.json new file mode 100644 index 0000000000..2c70369407 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iotsitewise-gateway.json @@ -0,0 +1,189 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GatewayPlatform" + ], + "definitions": { + "CapabilityConfiguration": { + "description": "The JSON document that defines the gateway capability's configuration.", + "type": "string" + }, + "CapabilityNamespace": { + "description": "The namespace of the capability configuration.", + "type": "string" + }, + "GatewayCapabilitySummary": { + "additionalProperties": false, + "description": "Contains a summary of a gateway capability configuration.", + "properties": { + "CapabilityConfiguration": { + "$ref": "#/definitions/CapabilityConfiguration" + }, + "CapabilityNamespace": { + "$ref": "#/definitions/CapabilityNamespace" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "GatewayPlatform": { + "additionalProperties": false, + "description": "Contains a gateway's platform information.", + "oneOf": [ + { + "required": [ + "Greengrass" + ] + }, + { + "required": [ + "GreengrassV2" + ] + } + ], + "properties": { + "Greengrass": { + "$ref": "#/definitions/Greengrass", + "description": "A gateway that runs on AWS IoT Greengrass V1." + }, + "GreengrassV2": { + "$ref": "#/definitions/GreengrassV2", + "description": "A gateway that runs on AWS IoT Greengrass V2." + } + }, + "type": "object" + }, + "Greengrass": { + "additionalProperties": false, + "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", + "properties": { + "GroupArn": { + "description": "The ARN of the Greengrass group.", + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "GreengrassV2": { + "additionalProperties": false, + "description": "Contains the CoreDeviceThingName of AWS IoT Greengrass Group V2 that the gateway runs on.", + "properties": { + "CoreDeviceThingName": { + "description": "The name of the CoreDevice in GreenGrass V2.", + "type": "string" + } + }, + "required": [ + "CoreDeviceThingName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Gateway", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iam:PassRole", + "iam:GetRole", + "greengrass:GetCoreDevice", + "iot:DescribeThing" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteGateway" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListGateways" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotsitewise:UpdateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:DescribeGateway", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/GatewayId" + ], + "properties": { + "GatewayCapabilitySummaries": { + "description": "A list of gateway capability summaries that each contain a namespace and status.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/GatewayCapabilitySummary" + }, + "type": "array", + "uniqueItems": true + }, + "GatewayId": { + "description": "The ID of the gateway device.", + "type": "string" + }, + "GatewayName": { + "description": "A unique, friendly name for the gateway.", + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/GatewayPlatform", + "description": "The gateway's platform. You can only specify one platform in a gateway." + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the gateway.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/GatewayId" + ], + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Gateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iotsitewise-portal.json new file mode 100644 index 0000000000..1f96697cad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iotsitewise-portal.json @@ -0,0 +1,155 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/PortalArn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalAuthMode" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Portal", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreatePortal", + "iotsitewise:TagResource", + "iam:PassRole", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeletePortal", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListPortals" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribePortal" + ] + }, + "update": { + "permissions": [ + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", + "iotsitewise:UpdatePortal", + "iotsitewise:UntagResource", + "iam:PassRole", + "sso:GetManagedApplicationInstance", + "sso:UpdateApplicationInstanceDisplayData" + ] + } + }, + "primaryIdentifier": [ + "/properties/PortalId" + ], + "properties": { + "Alarms": { + "additionalProperties": false, + "description": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range.", + "properties": { + "AlarmRoleArn": { + "description": "The ARN of the IAM role that allows the alarm to perform actions and access AWS resources and services, such as AWS IoT Events.", + "type": "string" + }, + "NotificationLambdaArn": { + "description": "The ARN of the AWS Lambda function that manages alarm notifications. For more information, see Managing alarm notifications in the AWS IoT Events Developer Guide.", + "type": "string" + } + }, + "type": "object" + }, + "NotificationSenderEmail": { + "description": "The email address that sends alarm notifications.", + "type": "string" + }, + "PortalArn": { + "description": "The ARN of the portal, which has the following format.", + "type": "string" + }, + "PortalAuthMode": { + "description": "The service to use to authenticate users to the portal. Choose from SSO or IAM. You can't change this value after you create a portal.", + "type": "string" + }, + "PortalClientId": { + "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", + "type": "string" + }, + "PortalContactEmail": { + "description": "The AWS administrator's contact email address.", + "type": "string" + }, + "PortalDescription": { + "description": "A description for the portal.", + "type": "string" + }, + "PortalId": { + "description": "The ID of the portal.", + "type": "string" + }, + "PortalName": { + "description": "A friendly name for the portal.", + "type": "string" + }, + "PortalStartUrl": { + "description": "The public root URL for the AWS IoT AWS IoT SiteWise Monitor application portal.", + "type": "string" + }, + "RoleArn": { + "description": "The ARN of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the portal.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/PortalArn", + "/properties/PortalClientId", + "/properties/PortalId", + "/properties/PortalStartUrl" + ], + "required": [ + "PortalContactEmail", + "PortalName", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotsitewise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Portal", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iotsitewise-project.json new file mode 100644 index 0000000000..0e457b1491 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iotsitewise-project.json @@ -0,0 +1,120 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalId" + ], + "definitions": { + "AssetId": { + "description": "The ID of the asset", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Project", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateProject", + "iotsitewise:BatchAssociateProjectAssets" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteProject" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListProjects" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:ListTagsForResource", + "iotsitewise:ListProjectAssets" + ] + }, + "update": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:UpdateProject", + "iotsitewise:BatchAssociateProjectAssets", + "iotsitewise:BatchDisAssociateProjectAssets", + "iotsitewise:ListProjectAssets", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ProjectId" + ], + "properties": { + "AssetIds": { + "description": "The IDs of the assets to be associated to the project.", + "items": { + "$ref": "#/definitions/AssetId" + }, + "type": "array", + "uniqueItems": true + }, + "PortalId": { + "description": "The ID of the portal in which to create the project.", + "type": "string" + }, + "ProjectArn": { + "description": "The ARN of the project.", + "type": "string" + }, + "ProjectDescription": { + "description": "A description for the project.", + "type": "string" + }, + "ProjectId": { + "description": "The ID of the project.", + "type": "string" + }, + "ProjectName": { + "description": "A friendly name for the project.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ProjectId", + "/properties/ProjectArn" + ], + "required": [ + "PortalId", + "ProjectName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Project" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptunegraph-graph.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptunegraph-graph.json new file mode 100644 index 0000000000..718d9e8197 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptunegraph-graph.json @@ -0,0 +1,190 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/GraphName" + ] + ], + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/ProvisionedMemory" + ], + "createOnlyProperties": [ + "/properties/GraphName", + "/properties/ReplicaCount", + "/properties/VectorSearchConfiguration" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VectorSearchConfiguration": { + "additionalProperties": false, + "description": "The vector search configuration.", + "properties": { + "VectorSearchDimension": { + "description": "The vector search dimension", + "type": "integer" + } + }, + "required": [ + "VectorSearchDimension" + ], + "type": "object" + } + }, + "description": "The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph.", + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "neptune-graph:CreateGraph", + "neptune-graph:GetGraph", + "neptune-graph:ListTagsForResource", + "neptune-graph:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "neptune-graph:DeleteGraph", + "neptune-graph:GetGraph", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "neptune-graph:GetGraph", + "neptune-graph:ListGraphs", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "neptune-graph:GetGraph", + "neptune-graph:ListTagsForResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "iam:PassRole", + "neptune-graph:GetGraph", + "neptune-graph:ListTagsForResource", + "neptune-graph:TagResource", + "neptune-graph:UntagResource", + "neptune-graph:UpdateGraph", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/GraphId" + ], + "properties": { + "DeletionProtection": { + "description": "Value that indicates whether the Graph has deletion protection enabled. The graph can't be deleted when deletion protection is enabled.\n\n_Default_: If not specified, the default value is true.", + "type": "boolean" + }, + "Endpoint": { + "description": "The connection endpoint for the graph. For example: `g-12a3bcdef4.us-east-1.neptune-graph.amazonaws.com`", + "type": "string" + }, + "GraphArn": { + "description": "Graph resource ARN", + "type": "string" + }, + "GraphId": { + "description": "The auto-generated id assigned by the service.", + "type": "string" + }, + "GraphName": { + "description": "Contains a user-supplied name for the Graph. \n\nIf you don't specify a name, we generate a unique Graph Name using a combination of Stack Name and a UUID comprising of 4 characters.\n\n_Important_: If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$", + "type": "string" + }, + "ProvisionedMemory": { + "description": "Memory for the Graph.", + "type": "integer" + }, + "PublicConnectivity": { + "description": "Specifies whether the Graph can be reached over the internet. Access to all graphs requires IAM authentication.\n\nWhen the Graph is publicly reachable, its Domain Name System (DNS) endpoint resolves to the public IP address from the internet.\n\nWhen the Graph isn't publicly reachable, you need to create a PrivateGraphEndpoint in a given VPC to ensure the DNS name resolves to a private IP address that is reachable from the VPC.\n\n_Default_: If not specified, the default value is false.", + "type": "boolean" + }, + "ReplicaCount": { + "description": "Specifies the number of replicas you want when finished. All replicas will be provisioned in different availability zones.\n\nReplica Count should always be less than or equal to 2.\n\n_Default_: If not specified, the default value is 1.", + "type": "integer" + }, + "Tags": { + "description": "The tags associated with this graph.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "VectorSearchConfiguration": { + "$ref": "#/definitions/VectorSearchConfiguration", + "description": "Vector Search Configuration" + } + }, + "propertyTransform": { + "/properties/GraphId": "$lowercase(GraphId)", + "/properties/GraphName": "$lowercase(GraphName)" + }, + "readOnlyProperties": [ + "/properties/GraphArn", + "/properties/GraphId", + "/properties/Endpoint" + ], + "required": [ + "ProvisionedMemory" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptunegraph", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NeptuneGraph::Graph" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptunegraph-privategraphendpoint.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptunegraph-privategraphendpoint.json new file mode 100644 index 0000000000..91cfae40a4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptunegraph-privategraphendpoint.json @@ -0,0 +1,132 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/GraphIdentifier", + "/properties/VpcId" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GraphIdentifier", + "/properties/SecurityGroupIds", + "/properties/SubnetIds", + "/properties/VpcId" + ], + "description": "The AWS::NeptuneGraph::PrivateGraphEndpoint resource creates an Amazon NeptuneGraph PrivateGraphEndpoint.", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpcEndpoint", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:DescribeVpcAttribute", + "ec2:DescribeAvailabilityZones", + "ec2:ModifyVpcEndpoint", + "route53:AssociateVPCWithHostedZone", + "iam:PassRole", + "neptune-graph:CreatePrivateGraphEndpoint", + "neptune-graph:GetPrivateGraphEndpoint", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "ec2:DeleteVpcEndpoints", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:DescribeVpcAttribute", + "ec2:DescribeAvailabilityZones", + "ec2:ModifyVpcEndpoint", + "route53:DisassociateVPCFromHostedZone", + "neptune-graph:DeletePrivateGraphEndpoint", + "neptune-graph:GetPrivateGraphEndpoint" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "neptune-graph:GetPrivateGraphEndpoint", + "neptune-graph:ListPrivateGraphEndpoints" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "neptune-graph:GetPrivateGraphEndpoint" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "iam:PassRole", + "neptune-graph:GetPrivateGraphEndpoint" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/PrivateGraphEndpointIdentifier" + ], + "properties": { + "GraphIdentifier": { + "description": "The auto-generated Graph Id assigned by the service.", + "type": "string" + }, + "PrivateGraphEndpointIdentifier": { + "description": "PrivateGraphEndpoint resource identifier generated by concatenating the associated GraphIdentifier and VpcId with an underscore separator.\n\n For example, if GraphIdentifier is `g-12a3bcdef4` and VpcId is `vpc-0a12bc34567de8f90`, the generated PrivateGraphEndpointIdentifier will be `g-12a3bcdef4_vpc-0a12bc34567de8f90`", + "type": "string" + }, + "SecurityGroupIds": { + "description": "The security group Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "description": "The subnet Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcEndpointId": { + "description": "VPC endpoint that provides a private connection between the Graph and specified VPC.", + "type": "string" + }, + "VpcId": { + "description": "The VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.", + "type": "string" + } + }, + "propertyTransform": { + "/properties/GraphIdentifier": "$lowercase(GraphIdentifier)" + }, + "readOnlyProperties": [ + "/properties/PrivateGraphEndpointIdentifier", + "/properties/VpcEndpointId" + ], + "required": [ + "GraphIdentifier", + "VpcId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptunegraph", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::NeptuneGraph::PrivateGraphEndpoint", + "writeOnlyProperties": [ + "/properties/GraphIdentifier", + "/properties/SecurityGroupIds" + ] +} 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 cbc2a94310..aee6b5a129 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -119,6 +119,7 @@ "AWS::Route53::RecordSet", "AWS::MediaStore::Container", "AWS::IoTAnalytics::Datastore", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -408,6 +409,7 @@ "AWS::AppStream::ImageBuilder", "AWS::BackupGateway::Hypervisor", "AWS::Lightsail::Disk", + "AWS::Connect::PredefinedAttribute", "AWS::IAM::Policy", "AWS::DataBrew::Schedule", "AWS::AppRunner::Service", @@ -492,6 +494,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -880,6 +883,7 @@ "AWS::WAF::XssMatchSet", "AWS::EC2::VerifiedAccessTrustProvider", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::PinpointEmail::ConfigurationSet", "AWS::Pinpoint::EmailTemplate", "AWS::MediaLive::Multiplex", @@ -1233,6 +1237,7 @@ "aws-route53-recordset.json", "aws-mediastore-container.json", "aws-iotanalytics-datastore.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -1279,6 +1284,7 @@ "aws-docdb-dbinstance.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", + "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-appstream-appblockbuilder.json", @@ -1286,6 +1292,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1368,6 +1375,7 @@ "aws-ssm-document.json", "aws-iam-role.json", "aws-dms-endpoint.json", + "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", @@ -1391,6 +1399,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1416,6 +1425,7 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1595,6 +1605,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1757,6 +1768,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1798,6 +1810,7 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", + "aws-iotsitewise-gateway.json", "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", "aws-sagemaker-workteam.json", @@ -1882,6 +1895,7 @@ "aws-secretsmanager-rotationschedule.json", "aws-ec2-verifiedaccessinstance.json", "aws-lambda-permission.json", + "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-opsworkscm-server.json", @@ -1971,6 +1985,7 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-pinpointemail-configurationset.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-predefinedattribute.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-predefinedattribute.json new file mode 100644 index 0000000000..0c16367e0b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-predefinedattribute.json @@ -0,0 +1,100 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceArn", + "/properties/Name" + ], + "definitions": { + "StringList": { + "description": "Predefined attribute values of type string list.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Value" + }, + "maxItems": 128, + "minItems": 1, + "type": "array" + }, + "Value": { + "description": "Textual or numeric value that describes an attribute.", + "maxLength": 64, + "minLength": 1, + "type": "string" + } + }, + "description": "Resource Type definition for AWS::Connect::PredefinedAttribute", + "handlers": { + "create": { + "permissions": [ + "connect:CreatePredefinedAttribute" + ] + }, + "delete": { + "permissions": [ + "connect:DeletePredefinedAttribute" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListPredefinedAttributes" + ] + }, + "read": { + "permissions": [ + "connect:DescribePredefinedAttribute" + ] + }, + "update": { + "permissions": [ + "connect:UpdatePredefinedAttribute" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceArn", + "/properties/Name" + ], + "properties": { + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Name": { + "description": "The name of the predefined attribute.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Values": { + "additionalProperties": false, + "description": "The values of a predefined attribute.", + "properties": { + "StringList": { + "$ref": "#/definitions/StringList" + } + }, + "type": "object" + } + }, + "required": [ + "InstanceArn", + "Name", + "Values" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Connect::PredefinedAttribute" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-user.json index b949608f4f..546e21910e 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-user.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-connect-user.json @@ -6,6 +6,18 @@ "minimum": 0, "type": "integer" }, + "AttributeName": { + "description": "The name of user's proficiency. You must use name of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "description": "The value of user's proficiency. You must use value of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, "AutoAccept": { "description": "The Auto accept setting.", "type": "boolean" @@ -26,6 +38,12 @@ "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", "type": "string" }, + "Level": { + "description": "The level of the proficiency. The valid values are 1, 2, 3, 4 and 5.", + "maximum": 5.0, + "minimum": 1.0, + "type": "number" + }, "Mobile": { "description": "The mobile phone number.", "pattern": "^\\+[1-9]\\d{1,14}$", @@ -115,6 +133,27 @@ "PhoneType" ], "type": "object" + }, + "UserProficiency": { + "additionalProperties": false, + "description": "Proficiency of a user.", + "properties": { + "AttributeName": { + "$ref": "#/definitions/AttributeName" + }, + "AttributeValue": { + "$ref": "#/definitions/AttributeValue" + }, + "Level": { + "$ref": "#/definitions/Level" + } + }, + "required": [ + "AttributeName", + "AttributeValue", + "Level" + ], + "type": "object" } }, "description": "Resource Type definition for AWS::Connect::User", @@ -215,6 +254,14 @@ "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", "type": "string" }, + "UserProficiencies": { + "description": "One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/UserProficiency" + }, + "type": "array" + }, "Username": { "description": "The user name for the account.", "maxLength": 64, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} 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 49e90840b3..27a18c8663 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -59,6 +59,7 @@ "AWS::ControlTower::EnabledControl", "AWS::S3::AccessGrantsInstance", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::ElastiCache::SecurityGroup", "AWS::OpsWorks::Layer", "AWS::CloudTrail::EventDataStore", @@ -243,6 +244,7 @@ "AWS::SecretsManager::ResourcePolicy", "AWS::CloudFormation::HookDefaultVersion", "AWS::Config::ConfigRule", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::ACMPCA::CertificateAuthorityActivation", @@ -256,6 +258,7 @@ "AWS::EC2::LocalGatewayRoute", "AWS::OpsWorks::App", "AWS::Kinesis::Stream", + "AWS::Batch::JobDefinition", "AWS::IAM::SAMLProvider", "AWS::CloudFront::KeyGroup", "AWS::EC2::NetworkInterfaceAttachment", @@ -304,6 +307,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::EC2::VPNGatewayRoutePropagation", "AWS::CloudFront::Function", "AWS::ApiGateway::Method", @@ -527,6 +531,7 @@ "AWS::EC2::LaunchTemplate", "AWS::CloudFront::OriginRequestPolicy", "AWS::DataSync::LocationFSxONTAP", + "AWS::Cognito::UserPoolRiskConfigurationAttachment", "AWS::PCAConnectorAD::ServicePrincipalName", "AWS::ElasticBeanstalk::Environment", "AWS::Cognito::UserPoolClient", @@ -544,6 +549,7 @@ "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", "AWS::RDS::DBProxy", "AWS::RDS::DBParameterGroup", + "AWS::SecurityHub::Hub", "AWS::S3::AccessPoint", "AWS::Batch::JobQueue", "AWS::ElasticLoadBalancingV2::Listener", @@ -598,6 +604,7 @@ "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-elasticache-securitygroup.json", "aws-cloudtrail-eventdatastore.json", "aws-kinesisfirehose-deliverystream.json", @@ -624,6 +631,7 @@ "aws-ec2-vpcendpointconnectionnotification.json", "aws-codepipeline-pipeline.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-synthetics-canary.json", @@ -677,6 +685,7 @@ "aws-ec2-transitgatewaymulticastdomainassociation.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-rds-dbproxytargetgroup.json", "aws-cloudwatch-dashboard.json", @@ -688,12 +697,13 @@ "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", + "aws-codedeploy-deploymentgroup.json", "aws-cloudformation-stackset.json", + "aws-ec2-route.json", "aws-cloudformation-hookversion.json", "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-wafv2-loggingconfiguration.json", - "aws-dynamodb-globaltable.json", "aws-backup-backupplan.json", "aws-imagebuilder-distributionconfiguration.json", "aws-lakeformation-permissions.json", @@ -760,6 +770,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-cloudformation-hookdefaultversion.json", "aws-config-configrule.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-acmpca-certificateauthorityactivation.json", @@ -773,12 +784,14 @@ "aws-ec2-localgatewayroute.json", "aws-opsworks-app.json", "aws-kinesis-stream.json", + "aws-batch-jobdefinition.json", "aws-iam-samlprovider.json", "aws-cloudfront-keygroup.json", "aws-ec2-networkinterfaceattachment.json", "aws-cognito-userpooluser.json", "aws-codedeploy-deploymentconfig.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-backup-backupvault.json", "aws-ec2-customergateway.json", "aws-iam-grouppolicy.json", @@ -815,7 +828,7 @@ "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", - "aws-cloudfront-function.json", + "aws-cloudfront-keyvaluestore.json", "aws-ssm-patchbaseline.json", "aws-cloudfront-monitoringsubscription.json", "aws-efs-mounttarget.json", @@ -829,6 +842,7 @@ "aws-s3-bucketpolicy.json", "aws-appsync-graphqlschema.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-transfer-agreement.json", "aws-chatbot-slackchannelconfiguration.json", "aws-cloudfront-distribution.json", @@ -884,9 +898,7 @@ "aws-servicecatalog-serviceaction.json", "aws-iam-userpolicy.json", "aws-cloudfront-originaccesscontrol.json", - "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -1017,6 +1029,7 @@ "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-batch-jobqueue.json", "aws-elasticloadbalancingv2-listener.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpool.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpool.json new file mode 100644 index 0000000000..eb49ab4a3e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpool.json @@ -0,0 +1,530 @@ +{ + "additionalProperties": false, + "definitions": { + "AccountRecoverySetting": { + "additionalProperties": false, + "properties": { + "RecoveryMechanisms": { + "items": { + "$ref": "#/definitions/RecoveryOption" + }, + "type": "array" + } + }, + "type": "object" + }, + "AdminCreateUserConfig": { + "additionalProperties": false, + "properties": { + "AllowAdminCreateUserOnly": { + "type": "boolean" + }, + "InviteMessageTemplate": { + "$ref": "#/definitions/InviteMessageTemplate" + }, + "UnusedAccountValidityDays": { + "type": "integer" + } + }, + "type": "object" + }, + "CustomEmailSender": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + }, + "LambdaVersion": { + "type": "string" + } + }, + "type": "object" + }, + "CustomSMSSender": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + }, + "LambdaVersion": { + "type": "string" + } + }, + "type": "object" + }, + "DeviceConfiguration": { + "additionalProperties": false, + "properties": { + "ChallengeRequiredOnNewDevice": { + "type": "boolean" + }, + "DeviceOnlyRememberedOnUserPrompt": { + "type": "boolean" + } + }, + "type": "object" + }, + "EmailConfiguration": { + "additionalProperties": false, + "properties": { + "ConfigurationSet": { + "type": "string" + }, + "EmailSendingAccount": { + "type": "string" + }, + "From": { + "type": "string" + }, + "ReplyToEmailAddress": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "type": "object" + }, + "InviteMessageTemplate": { + "additionalProperties": false, + "properties": { + "EmailMessage": { + "type": "string" + }, + "EmailSubject": { + "type": "string" + }, + "SMSMessage": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaConfig": { + "additionalProperties": false, + "properties": { + "CreateAuthChallenge": { + "type": "string" + }, + "CustomEmailSender": { + "$ref": "#/definitions/CustomEmailSender" + }, + "CustomMessage": { + "type": "string" + }, + "CustomSMSSender": { + "$ref": "#/definitions/CustomSMSSender" + }, + "DefineAuthChallenge": { + "type": "string" + }, + "KMSKeyID": { + "type": "string" + }, + "PostAuthentication": { + "type": "string" + }, + "PostConfirmation": { + "type": "string" + }, + "PreAuthentication": { + "type": "string" + }, + "PreSignUp": { + "type": "string" + }, + "PreTokenGeneration": { + "type": "string" + }, + "PreTokenGenerationConfig": { + "$ref": "#/definitions/PreTokenGenerationConfig" + }, + "UserMigration": { + "type": "string" + }, + "VerifyAuthChallengeResponse": { + "type": "string" + } + }, + "type": "object" + }, + "NumberAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "type": "string" + }, + "MinValue": { + "type": "string" + } + }, + "type": "object" + }, + "PasswordPolicy": { + "additionalProperties": false, + "properties": { + "MinimumLength": { + "type": "integer" + }, + "RequireLowercase": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireUppercase": { + "type": "boolean" + }, + "TemporaryPasswordValidityDays": { + "type": "integer" + } + }, + "type": "object" + }, + "Policies": { + "additionalProperties": false, + "properties": { + "PasswordPolicy": { + "$ref": "#/definitions/PasswordPolicy" + } + }, + "type": "object" + }, + "PreTokenGenerationConfig": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + }, + "LambdaVersion": { + "type": "string" + } + }, + "type": "object" + }, + "RecoveryOption": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Priority": { + "type": "integer" + } + }, + "type": "object" + }, + "SchemaAttribute": { + "additionalProperties": false, + "properties": { + "AttributeDataType": { + "type": "string" + }, + "DeveloperOnlyAttribute": { + "type": "boolean" + }, + "Mutable": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "NumberAttributeConstraints": { + "$ref": "#/definitions/NumberAttributeConstraints" + }, + "Required": { + "type": "boolean" + }, + "StringAttributeConstraints": { + "$ref": "#/definitions/StringAttributeConstraints" + } + }, + "type": "object" + }, + "SmsConfiguration": { + "additionalProperties": false, + "properties": { + "ExternalId": { + "type": "string" + }, + "SnsCallerArn": { + "type": "string" + }, + "SnsRegion": { + "type": "string" + } + }, + "type": "object" + }, + "StringAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxLength": { + "type": "string" + }, + "MinLength": { + "type": "string" + } + }, + "type": "object" + }, + "UserAttributeUpdateSettings": { + "additionalProperties": false, + "properties": { + "AttributesRequireVerificationBeforeUpdate": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AttributesRequireVerificationBeforeUpdate" + ], + "type": "object" + }, + "UserPoolAddOns": { + "additionalProperties": false, + "properties": { + "AdvancedSecurityMode": { + "type": "string" + } + }, + "type": "object" + }, + "UsernameConfiguration": { + "additionalProperties": false, + "properties": { + "CaseSensitive": { + "type": "boolean" + } + }, + "type": "object" + }, + "VerificationMessageTemplate": { + "additionalProperties": false, + "properties": { + "DefaultEmailOption": { + "type": "string" + }, + "EmailMessage": { + "type": "string" + }, + "EmailMessageByLink": { + "type": "string" + }, + "EmailSubject": { + "type": "string" + }, + "EmailSubjectByLink": { + "type": "string" + }, + "SmsMessage": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Cognito::UserPool", + "handlers": { + "create": { + "permissions": [ + "cognito-idp:CreateUserPool", + "iam:PassRole", + "cognito-idp:SetUserPoolMfaConfig", + "cognito-idp:DescribeUserPool", + "kms:CreateGrant", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2 + }, + "delete": { + "permissions": [ + "cognito-idp:DeleteUserPool" + ], + "timeoutInMinutes": 2 + }, + "list": { + "permissions": [ + "cognito-idp:ListUserPools" + ] + }, + "read": { + "permissions": [ + "cognito-idp:DescribeUserPool" + ] + }, + "update": { + "permissions": [ + "cognito-idp:UpdateUserPool", + "cognito-idp:ListTagsForResource", + "cognito-idp:UntagResource", + "cognito-idp:TagResource", + "cognito-idp:SetUserPoolMfaConfig", + "cognito-idp:AddCustomAttributes", + "cognito-idp:DescribeUserPool", + "iam:PassRole" + ], + "timeoutInMinutes": 2 + } + }, + "primaryIdentifier": [ + "/properties/UserPoolId" + ], + "properties": { + "AccountRecoverySetting": { + "$ref": "#/definitions/AccountRecoverySetting" + }, + "AdminCreateUserConfig": { + "$ref": "#/definitions/AdminCreateUserConfig" + }, + "AliasAttributes": { + "items": { + "enum": [ + "phone_number", + "email", + "preferred_username" + ], + "type": "string" + }, + "type": "array" + }, + "Arn": { + "type": "string" + }, + "AutoVerifiedAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeletionProtection": { + "type": "string" + }, + "DeviceConfiguration": { + "$ref": "#/definitions/DeviceConfiguration" + }, + "EmailConfiguration": { + "$ref": "#/definitions/EmailConfiguration" + }, + "EmailVerificationMessage": { + "maxLength": 20000, + "minLength": 6, + "type": "string" + }, + "EmailVerificationSubject": { + "maxLength": 140, + "minLength": 1, + "type": "string" + }, + "EnabledMfas": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LambdaConfig": { + "$ref": "#/definitions/LambdaConfig" + }, + "MfaConfiguration": { + "enum": [ + "OFF", + "ON", + "OPTIONAL" + ], + "type": "string" + }, + "Policies": { + "$ref": "#/definitions/Policies" + }, + "ProviderName": { + "type": "string" + }, + "ProviderURL": { + "type": "string" + }, + "Schema": { + "items": { + "$ref": "#/definitions/SchemaAttribute" + }, + "type": "array" + }, + "SmsAuthenticationMessage": { + "maxLength": 140, + "minLength": 6, + "type": "string" + }, + "SmsConfiguration": { + "$ref": "#/definitions/SmsConfiguration" + }, + "SmsVerificationMessage": { + "maxLength": 140, + "minLength": 6, + "type": "string" + }, + "UserAttributeUpdateSettings": { + "$ref": "#/definitions/UserAttributeUpdateSettings" + }, + "UserPoolAddOns": { + "$ref": "#/definitions/UserPoolAddOns" + }, + "UserPoolId": { + "type": "string" + }, + "UserPoolName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "UserPoolTags": { + "additionalProperties": false, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$": { + "type": "string" + } + }, + "type": "object" + }, + "UsernameAttributes": { + "items": { + "enum": [ + "phone_number", + "email" + ], + "type": "string" + }, + "type": "array" + }, + "UsernameConfiguration": { + "$ref": "#/definitions/UsernameConfiguration" + }, + "VerificationMessageTemplate": { + "$ref": "#/definitions/VerificationMessageTemplate" + } + }, + "propertyTransform": { + "/properties/Schema/*/Name": "'custom:' & '' & Name" + }, + "readOnlyProperties": [ + "/properties/ProviderName", + "/properties/UserPoolId", + "/properties/ProviderURL", + "/properties/Arn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/UserPoolTags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Cognito::UserPool", + "writeOnlyProperties": [ + "/properties/EnabledMfas" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpoolriskconfigurationattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpoolriskconfigurationattachment.json new file mode 100644 index 0000000000..229426c5ae --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cognito-userpoolriskconfigurationattachment.json @@ -0,0 +1,215 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/UserPoolId", + "/properties/ClientId" + ], + "definitions": { + "AccountTakeoverActionType": { + "additionalProperties": false, + "properties": { + "EventAction": { + "type": "string" + }, + "Notify": { + "type": "boolean" + } + }, + "required": [ + "EventAction", + "Notify" + ], + "type": "object" + }, + "AccountTakeoverActionsType": { + "additionalProperties": false, + "properties": { + "HighAction": { + "$ref": "#/definitions/AccountTakeoverActionType" + }, + "LowAction": { + "$ref": "#/definitions/AccountTakeoverActionType" + }, + "MediumAction": { + "$ref": "#/definitions/AccountTakeoverActionType" + } + }, + "type": "object" + }, + "AccountTakeoverRiskConfigurationType": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AccountTakeoverActionsType" + }, + "NotifyConfiguration": { + "$ref": "#/definitions/NotifyConfigurationType" + } + }, + "required": [ + "Actions" + ], + "type": "object" + }, + "CompromisedCredentialsActionsType": { + "additionalProperties": false, + "properties": { + "EventAction": { + "type": "string" + } + }, + "required": [ + "EventAction" + ], + "type": "object" + }, + "CompromisedCredentialsRiskConfigurationType": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/CompromisedCredentialsActionsType" + }, + "EventFilter": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Actions" + ], + "type": "object" + }, + "NotifyConfigurationType": { + "additionalProperties": false, + "properties": { + "BlockEmail": { + "$ref": "#/definitions/NotifyEmailType" + }, + "From": { + "type": "string" + }, + "MfaEmail": { + "$ref": "#/definitions/NotifyEmailType" + }, + "NoActionEmail": { + "$ref": "#/definitions/NotifyEmailType" + }, + "ReplyTo": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "required": [ + "SourceArn" + ], + "type": "object" + }, + "NotifyEmailType": { + "additionalProperties": false, + "properties": { + "HtmlBody": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "TextBody": { + "type": "string" + } + }, + "required": [ + "Subject" + ], + "type": "object" + }, + "RiskExceptionConfigurationType": { + "additionalProperties": false, + "properties": { + "BlockedIPRangeList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SkippedIPRangeList": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Cognito::UserPoolRiskConfigurationAttachment", + "handlers": { + "create": { + "permissions": [ + "cognito-idp:SetRiskConfiguration", + "cognito-idp:DescribeRiskConfiguration", + "iam:PassRole" + ], + "timeoutInMinutes": 2 + }, + "delete": { + "permissions": [ + "cognito-idp:SetRiskConfiguration", + "cognito-idp:DescribeRiskConfiguration" + ], + "timeoutInMinutes": 2 + }, + "read": { + "permissions": [ + "cognito-idp:DescribeRiskConfiguration" + ] + }, + "update": { + "permissions": [ + "cognito-idp:SetRiskConfiguration", + "cognito-idp:DescribeRiskConfiguration", + "iam:PassRole" + ], + "timeoutInMinutes": 2 + } + }, + "primaryIdentifier": [ + "/properties/UserPoolId", + "/properties/ClientId" + ], + "properties": { + "AccountTakeoverRiskConfiguration": { + "$ref": "#/definitions/AccountTakeoverRiskConfigurationType" + }, + "ClientId": { + "type": "string" + }, + "CompromisedCredentialsRiskConfiguration": { + "$ref": "#/definitions/CompromisedCredentialsRiskConfigurationType" + }, + "RiskExceptionConfiguration": { + "$ref": "#/definitions/RiskExceptionConfigurationType" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "UserPoolId", + "ClientId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Cognito::UserPoolRiskConfigurationAttachment" +} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-route.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-route.json deleted file mode 100644 index 722dba73ff..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ec2-route.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RouteTableId", - "/properties/DestinationCidrBlock", - "/properties/DestinationIpv6CidrBlock", - "/properties/DestinationPrefixListId" - ], - "description": "Resource Type definition for AWS::EC2::Route", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteRoute", - "ec2:DescribeRouteTables" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "RouteTableId": { - "$ref": "resource-schema.json#/properties/RouteTableId" - } - }, - "required": [ - "RouteTableId" - ] - }, - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - } - }, - "primaryIdentifier": [ - "/properties/RouteTableId", - "/properties/CidrBlock" - ], - "properties": { - "CarrierGatewayId": { - "description": "The ID of the carrier gateway.", - "type": "string" - }, - "CidrBlock": { - "description": "The primary identifier of the resource generated by the service.", - "type": "string" - }, - "DestinationCidrBlock": { - "description": "The IPv4 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "description": "The IPv6 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationPrefixListId": { - "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "description": "The ID of the egress-only internet gateway.", - "type": "string" - }, - "GatewayId": { - "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", - "type": "string" - }, - "InstanceId": { - "description": "The ID of a NAT instance in your VPC.", - "type": "string" - }, - "LocalGatewayId": { - "description": "The ID of the local gateway.", - "type": "string" - }, - "NatGatewayId": { - "description": "The ID of a NAT gateway.", - "type": "string" - }, - "NetworkInterfaceId": { - "description": "The ID of the network interface.", - "type": "string" - }, - "RouteTableId": { - "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", - "type": "string" - }, - "TransitGatewayId": { - "description": "The ID of a transit gateway.", - "type": "string" - }, - "VpcEndpointId": { - "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", - "type": "string" - }, - "VpcPeeringConnectionId": { - "description": "The ID of a VPC peering connection.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CidrBlock" - ], - "required": [ - "RouteTableId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", - "tagging": { - "taggable": false - }, - "typeName": "AWS::EC2::Route" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py new file mode 100644 index 0000000000..6ec92cd91a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -0,0 +1,895 @@ +from typing import List + +# pylint: disable=too-many-lines +types = [ + "AWS::CDK::Metadata", + "AWS::CE::AnomalySubscription", + "AWS::Shield::DRTAccess", + "AWS::Glue::Partition", + "AWS::EC2::TransitGatewayRouteTablePropagation", + "AWS::Shield::ProactiveEngagement", + "AWS::ApiGateway::BasePathMapping", + "AWS::GuardDuty::Filter", + "AWS::ECS::Service", + "AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "AWS::DMS::ReplicationConfig", + "AWS::DynamoDB::Table", + "AWS::AmazonMQ::ConfigurationAssociation", + "AWS::EC2::SecurityGroupEgress", + "AWS::Glue::DataQualityRuleset", + "AWS::Config::ConfigurationRecorder", + "AWS::EC2::NetworkPerformanceMetricSubscription", + "AWS::CloudFront::ContinuousDeploymentPolicy", + "AWS::ECR::ReplicationConfiguration", + "AWS::AppConfig::ExtensionAssociation", + "AWS::EC2::IPAMPoolCidr", + "AWS::Redshift::ClusterSubnetGroup", + "AWS::RDS::DBInstance", + "AWS::EC2::VPCDHCPOptionsAssociation", + "AWS::ApiGateway::Model", + "AWS::EC2::NetworkAcl", + "AWS::Lambda::EventSourceMapping", + "AWS::Logs::ResourcePolicy", + "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::EC2::NetworkAclEntry", + "AWS::Transfer::Certificate", + "AWS::ApiGateway::DocumentationPart", + "AWS::CloudWatch::CompositeAlarm", + "AWS::Route53Resolver::FirewallDomainList", + "AWS::AppConfig::Application", + "AWS::OpsWorks::Stack", + "AWS::MediaTailor::Channel", + "AWS::MediaTailor::ChannelPolicy", + "AWS::GameLift::Fleet", + "AWS::DataSync::LocationFSxWindows", + "AWS::GameLift::Build", + "AWS::ApiGateway::RequestValidator", + "AWS::AutoScaling::WarmPool", + "AWS::ApplicationAutoScaling::ScalableTarget", + "AWS::Config::StoredQuery", + "AWS::ACMPCA::Permission", + "AWS::ApiGateway::DomainName", + "AWS::ECS::PrimaryTaskSet", + "AWS::AutoScaling::AutoScalingGroup", + "AWS::WAFv2::RegexPatternSet", + "AWS::EKS::FargateProfile", + "AWS::Route53::DNSSEC", + "AWS::EC2::TransitGatewayRouteTable", + "AWS::ControlTower::EnabledControl", + "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", + "AWS::ElastiCache::SecurityGroup", + "AWS::OpsWorks::Layer", + "AWS::KinesisFirehose::DeliveryStream", + "AWS::PCAConnectorAD::DirectoryRegistration", + "AWS::ImageBuilder::Component", + "AWS::MediaConnect::FlowEntitlement", + "AWS::Glue::Connection", + "AWS::IAM::Group", + "AWS::Organizations::ResourcePolicy", + "AWS::EC2::TransitGatewayMulticastGroupSource", + "AWS::Transfer::Profile", + "AWS::GameLift::Alias", + "AWS::ApiGateway::UsagePlanKey", + "AWS::FMS::Policy", + "AWS::CloudFront::RealtimeLogConfig", + "AWS::LakeFormation::DataCellsFilter", + "AWS::DataSync::LocationHDFS", + "AWS::MSK::Cluster", + "AWS::EC2::VPCEndpointConnectionNotification", + "AWS::CodePipeline::Pipeline", + "AWS::OpsWorks::Instance", + "AWS::Config::ConfigurationAggregator", + "AWS::ImageBuilder::ImagePipeline", + "AWS::ElasticLoadBalancingV2::ListenerCertificate", + "AWS::Route53Resolver::ResolverRuleAssociation", + "AWS::FSx::StorageVirtualMachine", + "AWS::Synthetics::Canary", + "AWS::Backup::RestoreTestingSelection", + "AWS::SNS::Subscription", + "AWS::EC2::NatGateway", + "AWS::InternetMonitor::Monitor", + "AWS::Transfer::Workflow", + "AWS::AppConfig::DeploymentStrategy", + "AWS::Glue::DevEndpoint", + "AWS::ImageBuilder::ImageRecipe", + "AWS::ApiGateway::RestApi", + "AWS::OpsWorks::ElasticLoadBalancerAttachment", + "AWS::S3ObjectLambda::AccessPointPolicy", + "AWS::ElastiCache::ReplicationGroup", + "AWS::StepFunctions::StateMachineAlias", + "AWS::RDS::GlobalCluster", + "AWS::Glue::Job", + "AWS::ServiceCatalog::CloudFormationProvisionedProduct", + "AWS::Route53::HostedZone", + "AWS::EKS::PodIdentityAssociation", + "AWS::Glue::Table", + "AWS::Logs::MetricFilter", + "AWS::Lambda::Function", + "AWS::SNS::Topic", + "AWS::Backup::BackupSelection", + "AWS::DataSync::LocationFSxLustre", + "AWS::EC2::VPCGatewayAttachment", + "AWS::CloudTrail::Trail", + "AWS::EC2::VPNConnectionRoute", + "AWS::EC2::InternetGateway", + "AWS::EC2::GatewayRouteTableAssociation", + "AWS::WAFv2::IPSet", + "AWS::SSM::Document", + "AWS::IAM::Role", + "AWS::CloudFront::CloudFrontOriginAccessIdentity", + "AWS::ApiGateway::ApiKey", + "AWS::AutoScaling::LaunchConfiguration", + "AWS::ApiGateway::ClientCertificate", + "AWS::KinesisAnalyticsV2::Application", + "AWS::Lambda::Alias", + "AWS::Logs::LogAnomalyDetector", + "AWS::WAF::IPSet", + "AWS::EC2::TransitGatewayMulticastDomainAssociation", + "AWS::WAF::SizeConstraintSet", + "AWS::EC2::TransitGatewayRouteTableAssociation", + "AWS::AppConfig::Environment", + "AWS::ImageBuilder::Image", + "AWS::ElastiCache::SecurityGroupIngress", + "AWS::CloudWatch::Dashboard", + "AWS::CloudWatch::Alarm", + "AWS::GuardDuty::Member", + "AWS::CloudFormation::CustomResource", + "AWS::WAFv2::RuleGroup", + "AWS::ElastiCache::ParameterGroup", + "AWS::NetworkFirewall::LoggingConfiguration", + "AWS::Glue::Classifier", + "AWS::CodeDeploy::DeploymentGroup", + "AWS::CloudFormation::StackSet", + "AWS::EC2::Route", + "AWS::CloudFormation::HookVersion", + "AWS::XRay::ResourcePolicy", + "AWS::ServiceCatalog::LaunchTemplateConstraint", + "AWS::WAFv2::LoggingConfiguration", + "AWS::DynamoDB::GlobalTable", + "AWS::Backup::BackupPlan", + "AWS::ImageBuilder::DistributionConfiguration", + "AWS::LakeFormation::Permissions", + "AWS::Glue::DataCatalogEncryptionSettings", + "AWS::CloudFront::PublicKey", + "AWS::PCAConnectorAD::Connector", + "AWS::IdentityStore::Group", + "AWS::RAM::Permission", + "AWS::DataSync::Task", + "AWS::ECS::TaskDefinition", + "AWS::Shield::Protection", + "AWS::IdentityStore::GroupMembership", + "AWS::AppSync::FunctionConfiguration", + "AWS::EC2::SpotFleet", + "AWS::IoT::PolicyPrincipalAttachment", + "AWS::FMS::NotificationChannel", + "AWS::MSK::BatchScramSecret", + "AWS::S3::Bucket", + "AWS::GuardDuty::IPSet", + "AWS::ServiceDiscovery::HttpNamespace", + "AWS::EMR::SecurityConfiguration", + "AWS::CloudWatch::InsightRule", + "AWS::ApiGateway::UsagePlan", + "AWS::Batch::SchedulingPolicy", + "AWS::ServiceCatalog::PortfolioProductAssociation", + "AWS::Athena::WorkGroup", + "AWS::ServiceCatalog::PortfolioShare", + "AWS::ApiGateway::VpcLink", + "AWS::IAM::ServerCertificate", + "AWS::Events::EventBus", + "AWS::SQS::QueueInlinePolicy", + "AWS::Organizations::Organization", + "AWS::SSM::MaintenanceWindowTarget", + "AWS::ApiGateway::Authorizer", + "AWS::IAM::Policy", + "AWS::RDS::DBSecurityGroupIngress", + "AWS::EC2::TransitGatewayMulticastGroupMember", + "AWS::EC2::VolumeAttachment", + "AWS::Glue::SecurityConfiguration", + "AWS::ECS::ClusterCapacityProviderAssociations", + "AWS::AppConfig::ConfigurationProfile", + "AWS::Route53Resolver::FirewallRuleGroup", + "AWS::MSK::Configuration", + "AWS::EC2::TransitGateway", + "AWS::SSM::MaintenanceWindowTask", + "AWS::EC2::TransitGatewayMulticastDomain", + "AWS::VerifiedPermissions::PolicyTemplate", + "AWS::EKS::Cluster", + "AWS::EFS::FileSystem", + "AWS::Config::OrganizationConformancePack", + "AWS::Logs::QueryDefinition", + "AWS::IAM::InstanceProfile", + "AWS::DataSync::LocationNFS", + "AWS::CertificateManager::Certificate", + "AWS::SDB::Domain", + "AWS::EC2::SubnetRouteTableAssociation", + "AWS::ServiceCatalog::ServiceActionAssociation", + "AWS::ImageBuilder::ContainerRecipe", + "AWS::EFS::AccessPoint", + "AWS::Redshift::ClusterSecurityGroupIngress", + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation", + "AWS::ElasticLoadBalancingV2::LoadBalancer", + "AWS::OpenSearchService::Domain", + "AWS::ServiceDiscovery::Instance", + "AWS::Elasticsearch::Domain", + "AWS::ServiceCatalog::StackSetConstraint", + "AWS::EC2::NetworkInterfacePermission", + "AWS::ServiceCatalog::TagOption", + "AWS::ServiceDiscovery::PrivateDnsNamespace", + "AWS::ServiceCatalog::LaunchRoleConstraint", + "AWS::SecretsManager::ResourcePolicy", + "AWS::CloudFormation::HookDefaultVersion", + "AWS::Config::ConfigRule", + "AWS::ImageBuilder::Workflow", + "AWS::ECS::TaskSet", + "AWS::ACMPCA::CertificateAuthorityActivation", + "AWS::GuardDuty::ThreatIntelSet", + "AWS::EC2::VPC", + "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", + "AWS::MSK::VpcConnection", + "AWS::DataSync::LocationAzureBlob", + "AWS::Logs::LogStream", + "AWS::Route53::RecordSetGroup", + "AWS::OpsWorks::App", + "AWS::Kinesis::Stream", + "AWS::Batch::JobDefinition", + "AWS::IAM::SAMLProvider", + "AWS::CloudFront::KeyGroup", + "AWS::EC2::NetworkInterfaceAttachment", + "AWS::EC2::TransitGatewayAttachment", + "AWS::Glue::CustomEntityType", + "AWS::CodeDeploy::DeploymentConfig", + "AWS::StepFunctions::StateMachineVersion", + "AWS::ServiceCatalogAppRegistry::Application", + "AWS::Glue::Database", + "AWS::Backup::BackupVault", + "AWS::EC2::CustomerGateway", + "AWS::IAM::GroupPolicy", + "AWS::Scheduler::Schedule", + "AWS::WAF::ByteMatchSet", + "AWS::EC2::Host", + "AWS::EC2::RouteTable", + "AWS::DataSync::LocationSMB", + "AWS::SecurityHub::Standard", + "AWS::SNS::TopicInlinePolicy", + "AWS::Redshift::ClusterParameterGroup", + "AWS::Organizations::Policy", + "AWS::Glue::Trigger", + "AWS::GlobalAccelerator::Listener", + "AWS::VerifiedPermissions::PolicyStore", + "AWS::EC2::VPCPeeringConnection", + "AWS::SNS::TopicPolicy", + "AWS::NetworkFirewall::RuleGroup", + "AWS::KMS::Key", + "AWS::ServiceCatalog::AcceptedPortfolioShare", + "AWS::Route53Resolver::FirewallRuleGroupAssociation", + "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", + "AWS::EC2::Subnet", + "AWS::S3ObjectLambda::AccessPoint", + "AWS::WAF::Rule", + "AWS::ElasticBeanstalk::ConfigurationTemplate", + "AWS::SQS::QueuePolicy", + "AWS::ApiGateway::Account", + "AWS::WAFv2::WebACL", + "AWS::GlobalAccelerator::EndpointGroup", + "AWS::EC2::TransitGatewayConnect", + "AWS::EC2::SecurityGroup", + "AWS::OpsWorks::Volume", + "AWS::IAM::UserToGroupAddition", + "AWS::Events::Rule", + "AWS::EC2::VPNGatewayRoutePropagation", + "AWS::Glue::Crawler", + "AWS::CloudFront::Function", + "AWS::ApiGateway::Method", + "AWS::ServiceDiscovery::Service", + "AWS::CloudFront::MonitoringSubscription", + "AWS::EFS::MountTarget", + "AWS::EC2::VPNConnection", + "AWS::WAF::WebACL", + "AWS::ServiceDiscovery::PublicDnsNamespace", + "AWS::Shield::ProtectionGroup", + "AWS::IAM::User", + "AWS::EMR::InstanceGroupConfig", + "AWS::MediaConnect::Flow", + "AWS::StepFunctions::Activity", + "AWS::Logs::AccountPolicy", + "AWS::S3::BucketPolicy", + "AWS::Redshift::Cluster", + "AWS::EMR::InstanceFleetConfig", + "AWS::EMR::Cluster", + "AWS::RDS::DBCluster", + "AWS::ServiceCatalog::ResourceUpdateConstraint", + "AWS::Transfer::Agreement", + "AWS::Chatbot::SlackChannelConfiguration", + "AWS::CloudFront::Distribution", + "AWS::ElastiCache::SubnetGroup", + "AWS::XRay::Group", + "AWS::Oam::Link", + "AWS::ElasticLoadBalancingV2::TrustStoreRevocation", + "AWS::NetworkFirewall::Firewall", + "AWS::KMS::ReplicaKey", + "AWS::Redshift::ClusterSecurityGroup", + "AWS::ECR::PullThroughCacheRule", + "AWS::Glue::MLTransform", + "AWS::AppConfig::HostedConfigurationVersion", + "AWS::DataSync::LocationEFS", + "AWS::ApiGateway::Resource", + "AWS::ElasticLoadBalancingV2::TargetGroup", + "AWS::ApplicationAutoScaling::ScalingPolicy", + "AWS::CloudFormation::Macro", + "AWS::Lambda::LayerVersionPermission", + "AWS::SecretsManager::Secret", + "AWS::Route53Resolver::ResolverConfig", + "AWS::Logs::SubscriptionFilter", + "AWS::CodeDeploy::Application", + "AWS::IoT::TopicRule", + "AWS::LakeFormation::PrincipalPermissions", + "AWS::DataSync::LocationS3", + "AWS::AutoScaling::LifecycleHook", + "AWS::FSx::DataRepositoryAssociation", + "AWS::EC2::NetworkInterface", + "AWS::AppSync::Resolver", + "AWS::ControlTower::LandingZone", + "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation", + "AWS::ImageBuilder::LifecyclePolicy", + "AWS::Lambda::EventInvokeConfig", + "AWS::MediaConnect::FlowOutput", + "AWS::Lambda::LayerVersion", + "AWS::RDS::OptionGroup", + "AWS::OpsWorks::UserProfile", + "AWS::ServiceCatalog::Portfolio", + "AWS::IoT::Policy", + "AWS::EC2::TransitGatewayRoute", + "AWS::SSM::MaintenanceWindow", + "AWS::LakeFormation::TagAssociation", + "AWS::EC2::IPAMResourceDiscovery", + "AWS::ImageBuilder::InfrastructureConfiguration", + "AWS::CloudFormation::WaitCondition", + "AWS::Route53Resolver::ResolverEndpoint", + "AWS::CloudWatch::AnomalyDetector", + "AWS::EC2::SubnetNetworkAclAssociation", + "AWS::ServiceCatalog::ServiceAction", + "AWS::IAM::UserPolicy", + "AWS::CloudFront::OriginAccessControl", + "AWS::SecretsManager::RotationSchedule", + "AWS::Lambda::Permission", + "AWS::NetworkFirewall::FirewallPolicy", + "AWS::EKS::IdentityProviderConfig", + "AWS::EC2::IPAMResourceDiscoveryAssociation", + "AWS::ServiceCatalogAppRegistry::AttributeGroup", + "AWS::EC2::EgressOnlyInternetGateway", + "AWS::Config::ConformancePack", + "AWS::EC2::VPCCidrBlock", + "AWS::MediaTailor::VodSource", + "AWS::ACMPCA::CertificateAuthority", + "AWS::Athena::PreparedStatement", + "AWS::AutoScaling::ScheduledAction", + "AWS::LakeFormation::Resource", + "AWS::EC2::IPAMScope", + "AWS::DirectoryService::SimpleAD", + "AWS::EC2::VPCEndpoint", + "AWS::RDS::EventSubscription", + "AWS::Config::AggregationAuthorization", + "AWS::DataSync::Agent", + "AWS::Logs::LogGroup", + "AWS::ECS::Cluster", + "AWS::PCAConnectorAD::Template", + "AWS::EC2::PlacementGroup", + "AWS::Organizations::Account", + "AWS::ECR::Repository", + "AWS::MediaConnect::FlowSource", + "AWS::AppConfig::Extension", + "AWS::ElasticLoadBalancingV2::ListenerRule", + "AWS::ElasticLoadBalancingV2::TrustStore", + "AWS::EC2::KeyPair", + "AWS::FSx::FileSystem", + "AWS::MediaTailor::LiveSource", + "AWS::EC2::EIPAssociation", + "AWS::ElasticBeanstalk::Application", + "AWS::IoT::ThingPrincipalAttachment", + "AWS::EC2::CapacityReservation", + "AWS::ElasticLoadBalancing::LoadBalancer", + "AWS::IAM::RolePolicy", + "AWS::StepFunctions::StateMachine", + "AWS::RDS::DBClusterParameterGroup", + "AWS::WAF::XssMatchSet", + "AWS::Scheduler::ScheduleGroup", + "AWS::FSx::Snapshot", + "AWS::Route53::KeySigningKey", + "AWS::Athena::DataCatalog", + "AWS::MediaConnect::FlowVpcInterface", + "AWS::Glue::Workflow", + "AWS::EC2::PrefixList", + "AWS::EC2::Instance", + "AWS::EC2::SubnetCidrBlock", + "AWS::ElasticBeanstalk::ApplicationVersion", + "AWS::WAF::SqlInjectionMatchSet", + "AWS::EC2::TransitGatewayVpcAttachment", + "AWS::EC2::FlowLog", + "AWS::AmazonMQ::Broker", + "AWS::EMR::Step", + "AWS::SSM::Association", + "AWS::CloudFront::ResponseHeadersPolicy", + "AWS::SecurityHub::AutomationRule", + "AWS::MSK::ClusterPolicy", + "AWS::MediaTailor::SourceLocation", + "AWS::GuardDuty::Master", + "AWS::KMS::Alias", + "AWS::XRay::SamplingRule", + "AWS::Route53Resolver::ResolverRule", + "AWS::Transfer::Connector", + "AWS::ApiGateway::DocumentationVersion", + "AWS::WAFv2::WebACLAssociation", + "AWS::Oam::Sink", + "AWS::ApiGateway::GatewayResponse", + "AWS::FSx::Volume", + "AWS::ACMPCA::Certificate", + "AWS::EC2::IPAMAllocation", + "AWS::WorkSpaces::Workspace", + "AWS::EC2::InstanceConnectEndpoint", + "AWS::DirectoryService::MicrosoftAD", + "AWS::DataSync::LocationObjectStorage", + "AWS::ECS::CapacityProvider", + "AWS::ElastiCache::CacheCluster", + "AWS::SageMaker::ModelCard", + "AWS::Logs::Destination", + "AWS::EKS::Nodegroup", + "AWS::Organizations::OrganizationalUnit", + "AWS::SQS::Queue", + "AWS::EC2::SecurityGroupIngress", + "AWS::GuardDuty::Detector", + "AWS::ApiGateway::Stage", + "AWS::Batch::ComputeEnvironment", + "AWS::DataPipeline::Pipeline", + "AWS::IoT::Thing", + "AWS::Route53::HealthCheck", + "AWS::Athena::NamedQuery", + "AWS::ApiGateway::Deployment", + "AWS::LakeFormation::DataLakeSettings", + "AWS::AutoScaling::ScalingPolicy", + "AWS::ECR::RegistryPolicy", + "AWS::RDS::DBSecurityGroup", + "AWS::CloudWatch::MetricStream", + "AWS::SSM::Parameter", + "AWS::Config::DeliveryChannel", + "AWS::IAM::OIDCProvider", + "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", + "AWS::ServiceCatalogAppRegistry::ResourceAssociation", + "AWS::EC2::VPNGateway", + "AWS::CloudFormation::Stack", + "AWS::ResourceGroups::Group", + "AWS::CloudFormation::ResourceDefaultVersion", + "AWS::Backup::RestoreTestingPlan", + "AWS::ServiceCatalog::TagOptionAssociation", + "AWS::EC2::IPAM", + "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", + "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::CloudFront::CachePolicy", + "AWS::IAM::AccessKey", + "AWS::RDS::DBSubnetGroup", + "AWS::SecretsManager::SecretTargetAttachment", + "AWS::AmazonMQ::Configuration", + "AWS::AppConfig::Deployment", + "AWS::CodePipeline::CustomActionType", + "AWS::AccessAnalyzer::Analyzer", + "AWS::EC2::EC2Fleet", + "AWS::ServiceCatalog::CloudFormationProduct", + "AWS::IAM::ManagedPolicy", + "AWS::EC2::LaunchTemplate", + "AWS::CloudFront::OriginRequestPolicy", + "AWS::DataSync::LocationFSxONTAP", + "AWS::MediaTailor::PlaybackConfiguration", + "AWS::PCAConnectorAD::ServicePrincipalName", + "AWS::ElasticBeanstalk::Environment", + "AWS::Lambda::Version", + "AWS::EC2::DHCPOptions", + "AWS::EC2::IPAMPool", + "AWS::Kinesis::StreamConsumer", + "AWS::GammaDilithium::JobDefinition", + "AWS::IAM::ServiceLinkedRole", + "AWS::CloudFormation::HookTypeConfig", + "AWS::EC2::Volume", + "AWS::IoT::Certificate", + "AWS::EC2::EIP", + "AWS::VerifiedPermissions::Policy", + "AWS::CloudFormation::ResourceVersion", + "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", + "AWS::RDS::DBParameterGroup", + "AWS::SecurityHub::Hub", + "AWS::S3::AccessPoint", + "AWS::Batch::JobQueue", + "AWS::ElasticLoadBalancingV2::Listener", + "AWS::CloudFormation::WaitConditionHandle", + "AWS::GlobalAccelerator::Accelerator", + "AWS::EKS::Addon", +] + +# pylint: disable=too-many-lines +cached: List[str] = [ + "aws-ce-anomalysubscription.json", + "aws-shield-drtaccess.json", + "aws-glue-partition.json", + "aws-ec2-transitgatewayroutetablepropagation.json", + "aws-shield-proactiveengagement.json", + "aws-ecs-service.json", + "aws-dms-replicationconfig.json", + "aws-dynamodb-table.json", + "aws-ec2-securitygroupegress.json", + "aws-glue-dataqualityruleset.json", + "aws-config-configurationrecorder.json", + "aws-ec2-networkperformancemetricsubscription.json", + "aws-ecr-replicationconfiguration.json", + "aws-appconfig-extensionassociation.json", + "aws-ec2-ipampoolcidr.json", + "aws-ec2-vpcdhcpoptionsassociation.json", + "aws-ec2-networkacl.json", + "aws-lambda-eventsourcemapping.json", + "aws-logs-resourcepolicy.json", + "aws-servicecatalog-launchnotificationconstraint.json", + "aws-ec2-networkaclentry.json", + "aws-transfer-certificate.json", + "aws-cloudwatch-compositealarm.json", + "aws-route53resolver-firewalldomainlist.json", + "aws-appconfig-application.json", + "aws-mediatailor-channel.json", + "aws-mediatailor-channelpolicy.json", + "aws-datasync-locationfsxwindows.json", + "aws-autoscaling-warmpool.json", + "aws-applicationautoscaling-scalabletarget.json", + "aws-config-storedquery.json", + "aws-acmpca-permission.json", + "aws-ecs-primarytaskset.json", + "aws-autoscaling-autoscalinggroup.json", + "aws-wafv2-regexpatternset.json", + "aws-eks-fargateprofile.json", + "aws-route53-dnssec.json", + "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", + "aws-route53-recordset.json", + "aws-eks-accessentry.json", + "aws-elasticache-securitygroup.json", + "aws-kinesisfirehose-deliverystream.json", + "aws-pcaconnectorad-directoryregistration.json", + "aws-imagebuilder-component.json", + "aws-mediaconnect-flowentitlement.json", + "aws-glue-connection.json", + "aws-iam-group.json", + "aws-organizations-resourcepolicy.json", + "aws-ec2-transitgatewaymulticastgroupsource.json", + "aws-transfer-profile.json", + "aws-fms-policy.json", + "aws-lakeformation-datacellsfilter.json", + "aws-datasync-locationhdfs.json", + "aws-msk-cluster.json", + "aws-ec2-vpcendpointconnectionnotification.json", + "aws-codepipeline-pipeline.json", + "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", + "aws-elasticloadbalancingv2-listenercertificate.json", + "aws-fsx-storagevirtualmachine.json", + "aws-synthetics-canary.json", + "aws-backup-restoretestingselection.json", + "aws-sns-subscription.json", + "aws-ec2-natgateway.json", + "aws-internetmonitor-monitor.json", + "aws-transfer-workflow.json", + "aws-appconfig-deploymentstrategy.json", + "aws-glue-devendpoint.json", + "aws-imagebuilder-imagerecipe.json", + "aws-opsworks-elasticloadbalancerattachment.json", + "aws-s3objectlambda-accesspointpolicy.json", + "aws-elasticache-replicationgroup.json", + "aws-stepfunctions-statemachinealias.json", + "aws-rds-globalcluster.json", + "aws-glue-job.json", + "aws-servicecatalog-cloudformationprovisionedproduct.json", + "aws-eks-podidentityassociation.json", + "aws-glue-table.json", + "aws-logs-metricfilter.json", + "aws-lambda-function.json", + "aws-sns-topic.json", + "aws-backup-backupselection.json", + "aws-datasync-locationfsxlustre.json", + "aws-ec2-vpcgatewayattachment.json", + "aws-cloudtrail-trail.json", + "aws-ec2-internetgateway.json", + "aws-ec2-gatewayroutetableassociation.json", + "aws-wafv2-ipset.json", + "aws-ssm-document.json", + "aws-iam-role.json", + "aws-kinesisanalyticsv2-application.json", + "aws-logs-loganomalydetector.json", + "aws-ec2-transitgatewaymulticastdomainassociation.json", + "aws-ec2-transitgatewayroutetableassociation.json", + "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", + "aws-elasticache-securitygroupingress.json", + "aws-cloudwatch-dashboard.json", + "aws-cloudwatch-alarm.json", + "aws-cloudformation-customresource.json", + "aws-elasticache-parametergroup.json", + "aws-networkfirewall-loggingconfiguration.json", + "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", + "aws-cloudformation-stackset.json", + "aws-ec2-route.json", + "aws-cloudformation-hookversion.json", + "aws-xray-resourcepolicy.json", + "aws-servicecatalog-launchtemplateconstraint.json", + "aws-wafv2-loggingconfiguration.json", + "aws-backup-backupplan.json", + "aws-imagebuilder-distributionconfiguration.json", + "aws-lakeformation-permissions.json", + "aws-pcaconnectorad-connector.json", + "aws-identitystore-group.json", + "aws-ram-permission.json", + "aws-datasync-task.json", + "aws-ecs-taskdefinition.json", + "aws-shield-protection.json", + "aws-identitystore-groupmembership.json", + "aws-appsync-functionconfiguration.json", + "aws-fms-notificationchannel.json", + "aws-msk-batchscramsecret.json", + "aws-s3-bucket.json", + "aws-guardduty-ipset.json", + "aws-servicediscovery-httpnamespace.json", + "aws-cloudwatch-insightrule.json", + "aws-batch-schedulingpolicy.json", + "aws-athena-workgroup.json", + "aws-servicecatalog-portfolioshare.json", + "aws-iam-servercertificate.json", + "aws-events-eventbus.json", + "aws-sqs-queueinlinepolicy.json", + "aws-organizations-organization.json", + "aws-ssm-maintenancewindowtarget.json", + "aws-iam-policy.json", + "aws-rds-dbsecuritygroupingress.json", + "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-ec2-volumeattachment.json", + "aws-glue-securityconfiguration.json", + "aws-ecs-clustercapacityproviderassociations.json", + "aws-appconfig-configurationprofile.json", + "aws-route53resolver-firewallrulegroup.json", + "aws-msk-configuration.json", + "aws-ssm-maintenancewindowtask.json", + "aws-ec2-transitgatewaymulticastdomain.json", + "aws-verifiedpermissions-policytemplate.json", + "aws-eks-cluster.json", + "aws-efs-filesystem.json", + "aws-config-organizationconformancepack.json", + "aws-logs-querydefinition.json", + "aws-datasync-locationnfs.json", + "aws-certificatemanager-certificate.json", + "aws-sdb-domain.json", + "aws-ec2-subnetroutetableassociation.json", + "aws-servicecatalog-serviceactionassociation.json", + "aws-imagebuilder-containerrecipe.json", + "aws-efs-accesspoint.json", + "aws-redshift-clustersecuritygroupingress.json", + "aws-servicecatalogappregistry-attributegroupassociation.json", + "aws-opensearchservice-domain.json", + "aws-servicediscovery-instance.json", + "aws-elasticsearch-domain.json", + "aws-servicecatalog-stacksetconstraint.json", + "aws-servicecatalog-tagoption.json", + "aws-servicediscovery-privatednsnamespace.json", + "aws-servicecatalog-launchroleconstraint.json", + "aws-secretsmanager-resourcepolicy.json", + "aws-cloudformation-hookdefaultversion.json", + "aws-config-configrule.json", + "aws-imagebuilder-workflow.json", + "aws-acmpca-certificateauthorityactivation.json", + "aws-guardduty-threatintelset.json", + "aws-ec2-vpc.json", + "aws-arczonalshift-zonalautoshiftconfiguration.json", + "aws-msk-vpcconnection.json", + "aws-datasync-locationazureblob.json", + "aws-logs-logstream.json", + "aws-route53-recordsetgroup.json", + "aws-opsworks-app.json", + "aws-kinesis-stream.json", + "aws-batch-jobdefinition.json", + "aws-iam-samlprovider.json", + "aws-ec2-networkinterfaceattachment.json", + "aws-codedeploy-deploymentconfig.json", + "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", + "aws-glue-database.json", + "aws-backup-backupvault.json", + "aws-iam-grouppolicy.json", + "aws-scheduler-schedule.json", + "aws-waf-bytematchset.json", + "aws-ec2-routetable.json", + "aws-datasync-locationsmb.json", + "aws-securityhub-standard.json", + "aws-sns-topicinlinepolicy.json", + "aws-organizations-policy.json", + "aws-glue-trigger.json", + "aws-globalaccelerator-listener.json", + "aws-verifiedpermissions-policystore.json", + "aws-ec2-vpcpeeringconnection.json", + "aws-sns-topicpolicy.json", + "aws-networkfirewall-rulegroup.json", + "aws-kms-key.json", + "aws-route53resolver-firewallrulegroupassociation.json", + "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", + "aws-ec2-subnet.json", + "aws-s3objectlambda-accesspoint.json", + "aws-sqs-queuepolicy.json", + "aws-globalaccelerator-endpointgroup.json", + "aws-ec2-transitgatewayconnect.json", + "aws-ec2-securitygroup.json", + "aws-opsworks-volume.json", + "aws-iam-usertogroupaddition.json", + "aws-events-rule.json", + "aws-ec2-vpngatewayroutepropagation.json", + "aws-glue-crawler.json", + "aws-servicediscovery-service.json", + "aws-efs-mounttarget.json", + "aws-servicediscovery-publicdnsnamespace.json", + "aws-shield-protectiongroup.json", + "aws-iam-user.json", + "aws-emr-instancegroupconfig.json", + "aws-mediaconnect-flow.json", + "aws-logs-accountpolicy.json", + "aws-s3-bucketpolicy.json", + "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", + "aws-servicecatalog-resourceupdateconstraint.json", + "aws-transfer-agreement.json", + "aws-chatbot-slackchannelconfiguration.json", + "aws-xray-group.json", + "aws-oam-link.json", + "aws-elasticloadbalancingv2-truststorerevocation.json", + "aws-networkfirewall-firewall.json", + "aws-kms-replicakey.json", + "aws-redshift-clustersecuritygroup.json", + "aws-ecr-pullthroughcacherule.json", + "aws-glue-mltransform.json", + "aws-appconfig-hostedconfigurationversion.json", + "aws-datasync-locationefs.json", + "aws-applicationautoscaling-scalingpolicy.json", + "aws-cloudformation-macro.json", + "aws-lambda-layerversionpermission.json", + "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", + "aws-logs-subscriptionfilter.json", + "aws-codedeploy-application.json", + "aws-lakeformation-principalpermissions.json", + "aws-datasync-locations3.json", + "aws-fsx-datarepositoryassociation.json", + "aws-appsync-resolver.json", + "aws-controltower-landingzone.json", + "aws-route53resolver-resolverqueryloggingconfigassociation.json", + "aws-imagebuilder-lifecyclepolicy.json", + "aws-lambda-eventinvokeconfig.json", + "aws-mediaconnect-flowoutput.json", + "aws-lambda-layerversion.json", + "aws-rds-optiongroup.json", + "aws-opsworks-userprofile.json", + "aws-ssm-maintenancewindow.json", + "aws-lakeformation-tagassociation.json", + "aws-ec2-ipamresourcediscovery.json", + "aws-imagebuilder-infrastructureconfiguration.json", + "aws-route53resolver-resolverendpoint.json", + "aws-cloudwatch-anomalydetector.json", + "aws-ec2-subnetnetworkaclassociation.json", + "aws-servicecatalog-serviceaction.json", + "aws-iam-userpolicy.json", + "aws-secretsmanager-rotationschedule.json", + "aws-eks-identityproviderconfig.json", + "aws-ec2-ipamresourcediscoveryassociation.json", + "aws-servicecatalogappregistry-attributegroup.json", + "aws-ec2-egressonlyinternetgateway.json", + "aws-config-conformancepack.json", + "aws-ec2-vpccidrblock.json", + "aws-mediatailor-vodsource.json", + "aws-acmpca-certificateauthority.json", + "aws-athena-preparedstatement.json", + "aws-lakeformation-resource.json", + "aws-ec2-ipamscope.json", + "aws-rds-eventsubscription.json", + "aws-config-aggregationauthorization.json", + "aws-datasync-agent.json", + "aws-logs-loggroup.json", + "aws-pcaconnectorad-template.json", + "aws-organizations-account.json", + "aws-ecr-repository.json", + "aws-mediaconnect-flowsource.json", + "aws-appconfig-extension.json", + "aws-elasticloadbalancingv2-truststore.json", + "aws-ec2-keypair.json", + "aws-fsx-filesystem.json", + "aws-mediatailor-livesource.json", + "aws-ec2-eipassociation.json", + "aws-ec2-capacityreservation.json", + "aws-elasticloadbalancing-loadbalancer.json", + "aws-iam-rolepolicy.json", + "aws-stepfunctions-statemachine.json", + "aws-rds-dbclusterparametergroup.json", + "aws-scheduler-schedulegroup.json", + "aws-fsx-snapshot.json", + "aws-route53-keysigningkey.json", + "aws-athena-datacatalog.json", + "aws-mediaconnect-flowvpcinterface.json", + "aws-glue-workflow.json", + "aws-ec2-prefixlist.json", + "aws-ec2-instance.json", + "aws-ec2-subnetcidrblock.json", + "aws-waf-sqlinjectionmatchset.json", + "aws-ec2-flowlog.json", + "aws-amazonmq-broker.json", + "aws-emr-step.json", + "aws-ssm-association.json", + "aws-securityhub-automationrule.json", + "aws-msk-clusterpolicy.json", + "aws-mediatailor-sourcelocation.json", + "aws-kms-alias.json", + "aws-xray-samplingrule.json", + "aws-transfer-connector.json", + "aws-wafv2-webaclassociation.json", + "aws-oam-sink.json", + "aws-fsx-volume.json", + "aws-acmpca-certificate.json", + "aws-ec2-ipamallocation.json", + "aws-workspaces-workspace.json", + "aws-ec2-instanceconnectendpoint.json", + "aws-datasync-locationobjectstorage.json", + "aws-ecs-capacityprovider.json", + "aws-elasticache-cachecluster.json", + "aws-sagemaker-modelcard.json", + "aws-logs-destination.json", + "aws-eks-nodegroup.json", + "aws-organizations-organizationalunit.json", + "aws-sqs-queue.json", + "aws-ec2-securitygroupingress.json", + "aws-guardduty-detector.json", + "aws-batch-computeenvironment.json", + "aws-athena-namedquery.json", + "aws-lakeformation-datalakesettings.json", + "aws-ecr-registrypolicy.json", + "aws-rds-dbsecuritygroup.json", + "aws-cloudwatch-metricstream.json", + "aws-ssm-parameter.json", + "aws-config-deliverychannel.json", + "aws-iam-oidcprovider.json", + "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", + "aws-servicecatalogappregistry-resourceassociation.json", + "aws-cloudformation-stack.json", + "aws-resourcegroups-group.json", + "aws-cloudformation-resourcedefaultversion.json", + "aws-backup-restoretestingplan.json", + "aws-ec2-ipam.json", + "aws-pcaconnectorad-templategroupaccesscontrolentry.json", + "aws-ec2-transitgatewaypeeringattachment.json", + "aws-rds-dbsubnetgroup.json", + "aws-amazonmq-configuration.json", + "aws-appconfig-deployment.json", + "aws-accessanalyzer-analyzer.json", + "aws-ec2-ec2fleet.json", + "aws-servicecatalog-cloudformationproduct.json", + "aws-iam-managedpolicy.json", + "aws-ec2-launchtemplate.json", + "aws-datasync-locationfsxontap.json", + "aws-mediatailor-playbackconfiguration.json", + "aws-pcaconnectorad-serviceprincipalname.json", + "aws-lambda-version.json", + "aws-ec2-ipampool.json", + "aws-iam-servicelinkedrole.json", + "aws-cloudformation-hooktypeconfig.json", + "aws-verifiedpermissions-policy.json", + "aws-cloudformation-resourceversion.json", + "aws-chatbot-microsoftteamschannelconfiguration.json", + "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", + "aws-s3-accesspoint.json", + "aws-batch-jobqueue.json", + "aws-elasticloadbalancingv2-listener.json", + "aws-cloudformation-waitconditionhandle.json", + "aws-globalaccelerator-accelerator.json", + "aws-eks-addon.json", +] diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-amazonmq-configurationassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-amazonmq-configurationassociation.json new file mode 100644 index 0000000000..2a5ccb1b3b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-amazonmq-configurationassociation.json @@ -0,0 +1,47 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Broker" + ], + "definitions": { + "ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Revision": { + "type": "integer" + } + }, + "required": [ + "Revision", + "Id" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Broker": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/ConfigurationId" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Broker", + "Configuration" + ], + "typeName": "AWS::AmazonMQ::ConfigurationAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-account.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-account.json new file mode 100644 index 0000000000..2fb72e9114 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-account.json @@ -0,0 +1,19 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::ApiGateway::Account", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CloudWatchRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::Account" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-apikey.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-apikey.json new file mode 100644 index 0000000000..bbc59b7abb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-apikey.json @@ -0,0 +1,83 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/GenerateDistinctId", + "/properties/Value" + ], + "definitions": { + "StageKey": { + "additionalProperties": false, + "properties": { + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ApiKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "GenerateDistinctId": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StageKeys": { + "items": { + "$ref": "#/definitions/StageKey" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Value": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ApiKey" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-authorizer.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-authorizer.json new file mode 100644 index 0000000000..9f8245e3e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-authorizer.json @@ -0,0 +1,64 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Authorizer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AuthType": { + "type": "string" + }, + "AuthorizerCredentials": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "maximum": 3600, + "minimum": 0, + "type": "integer" + }, + "AuthorizerUri": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IdentitySource": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProviderARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "Type": { + "enum": [ + "TOKEN", + "REQUEST", + "COGNITO_USER_POOLS" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-basepathmapping.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-basepathmapping.json new file mode 100644 index 0000000000..366b329398 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-basepathmapping.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/BasePath", + "/properties/DomainName" + ], + "description": "Resource Type definition for AWS::ApiGateway::BasePathMapping", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BasePath": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::BasePathMapping" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-clientcertificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-clientcertificate.json new file mode 100644 index 0000000000..021bfd6a85 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-clientcertificate.json @@ -0,0 +1,44 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ClientCertificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ClientCertificate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-deployment.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-deployment.json new file mode 100644 index 0000000000..70dba1a1c0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-deployment.json @@ -0,0 +1,220 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentCanarySettings", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "DeploymentCanarySettings": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "StageDescription": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "MetricsEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Deployment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DeploymentCanarySettings": { + "$ref": "#/definitions/DeploymentCanarySettings" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StageDescription": { + "$ref": "#/definitions/StageDescription" + }, + "StageName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Deployment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-documentationpart.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-documentationpart.json new file mode 100644 index 0000000000..c387182671 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-documentationpart.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Location", + "/properties/RestApiId" + ], + "definitions": { + "Location": { + "additionalProperties": false, + "properties": { + "Method": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "StatusCode": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DocumentationPart", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/Location" + }, + "Properties": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId", + "Properties", + "Location" + ], + "typeName": "AWS::ApiGateway::DocumentationPart" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-documentationversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-documentationversion.json new file mode 100644 index 0000000000..6c3162fd9b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-documentationversion.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DocumentationVersion", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::DocumentationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DocumentationVersion", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::DocumentationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-domainname.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-domainname.json new file mode 100644 index 0000000000..c571bde8c2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-domainname.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DomainName", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CertificateArn": { + "type": "string" + }, + "DistributionDomainName": { + "type": "string" + }, + "DistributionHostedZoneId": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "Id": { + "type": "string" + }, + "RegionalCertificateArn": { + "type": "string" + }, + "RegionalDomainName": { + "type": "string" + }, + "RegionalHostedZoneId": { + "type": "string" + }, + "SecurityPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/DistributionDomainName", + "/properties/RegionalDomainName", + "/properties/Id", + "/properties/DistributionHostedZoneId", + "/properties/RegionalHostedZoneId" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::DomainName" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-gatewayresponse.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-gatewayresponse.json new file mode 100644 index 0000000000..13fa8c2dba --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-gatewayresponse.json @@ -0,0 +1,72 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResponseType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::GatewayResponse", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "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": [ + "RestApiId", + "ResponseType" + ], + "typeName": "AWS::ApiGateway::GatewayResponse" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-method.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-method.json new file mode 100644 index 0000000000..c895cf0160 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-method.json @@ -0,0 +1,208 @@ +{ + "additionalProperties": false, + "definitions": { + "Integration": { + "additionalProperties": false, + "properties": { + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CacheNamespace": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandling": { + "type": "string" + }, + "Credentials": { + "type": "string" + }, + "IntegrationHttpMethod": { + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/IntegrationResponse" + }, + "type": "array", + "uniqueItems": true + }, + "PassthroughBehavior": { + "type": "string" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "Type": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, + "IntegrationResponse": { + "additionalProperties": false, + "properties": { + "ContentHandling": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "SelectionPattern": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "MethodResponse": { + "additionalProperties": false, + "properties": { + "ResponseModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Method", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/MethodResponse" + }, + "type": "array", + "uniqueItems": true + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "RequestValidatorId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResourceId", + "RestApiId", + "HttpMethod" + ], + "typeName": "AWS::ApiGateway::Method" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-model.json new file mode 100644 index 0000000000..f93e5b8eb8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-model.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/ContentType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Model", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Schema": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-requestvalidator.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-requestvalidator.json new file mode 100644 index 0000000000..65d76759ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-requestvalidator.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::RequestValidator", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "ValidateRequestBody": { + "type": "boolean" + }, + "ValidateRequestParameters": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::RequestValidator" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-resource.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-resource.json new file mode 100644 index 0000000000..d99746d395 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-resource.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PathPart", + "/properties/ParentId", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Resource", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "PathPart": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParentId", + "PathPart", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Resource" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-restapi.json new file mode 100644 index 0000000000..857b4a9c90 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-restapi.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::RestApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeySourceType": { + "enum": [ + "HEADER", + "AUTHORIZER" + ], + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Body": { + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "MinimumCompressionSize": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "type": "object" + }, + "RootResourceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/RootResourceId" + ], + "typeName": "AWS::ApiGateway::RestApi" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-stage.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-stage.json new file mode 100644 index 0000000000..715adbbabd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-stage.json @@ -0,0 +1,167 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StageName", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "DeploymentId": { + "type": "string" + }, + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Stage", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DeploymentId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Stage" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-usageplan.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-usageplan.json new file mode 100644 index 0000000000..73b66424f8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-usageplan.json @@ -0,0 +1,107 @@ +{ + "additionalProperties": false, + "definitions": { + "ApiStage": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "Throttle": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ThrottleSettings" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "QuotaSettings": { + "additionalProperties": false, + "properties": { + "Limit": { + "type": "integer" + }, + "Offset": { + "type": "integer" + }, + "Period": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "ThrottleSettings": { + "additionalProperties": false, + "properties": { + "BurstLimit": { + "type": "integer" + }, + "RateLimit": { + "type": "number" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::UsagePlan", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiStages": { + "items": { + "$ref": "#/definitions/ApiStage" + }, + "type": "array", + "uniqueItems": true + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Quota": { + "$ref": "#/definitions/QuotaSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throttle": { + "$ref": "#/definitions/ThrottleSettings" + }, + "UsagePlanName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::UsagePlan" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-usageplankey.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-usageplankey.json new file mode 100644 index 0000000000..6454c66f61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-usageplankey.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyType", + "/properties/UsagePlanId", + "/properties/KeyId" + ], + "description": "Resource Type definition for AWS::ApiGateway::UsagePlanKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "KeyId": { + "type": "string" + }, + "KeyType": { + "enum": [ + "API_KEY" + ], + "type": "string" + }, + "UsagePlanId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "KeyType", + "UsagePlanId", + "KeyId" + ], + "typeName": "AWS::ApiGateway::UsagePlanKey" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-vpclink.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-vpclink.json new file mode 100644 index 0000000000..019f5635d9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-vpclink.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetArns" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::VpcLink", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TargetArns", + "Name" + ], + "typeName": "AWS::ApiGateway::VpcLink" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-launchconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-launchconfiguration.json new file mode 100644 index 0000000000..dae15adc72 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-launchconfiguration.json @@ -0,0 +1,242 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RamDiskId", + "/properties/InstanceType", + "/properties/InstanceMonitoring", + "/properties/ImageId", + "/properties/BlockDeviceMappings", + "/properties/SpotPrice", + "/properties/ClassicLinkVPCId", + "/properties/InstanceId", + "/properties/KeyName", + "/properties/PlacementTenancy", + "/properties/LaunchConfigurationName", + "/properties/IamInstanceProfile", + "/properties/UserData", + "/properties/AssociatePublicIpAddress", + "/properties/KernelId", + "/properties/EbsOptimized", + "/properties/SecurityGroups", + "/properties/MetadataOptions", + "/properties/ClassicLinkVPCSecurityGroups" + ], + "definitions": { + "BlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/BlockDevice" + }, + "NoDevice": { + "type": "boolean" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "MetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "type": "string" + }, + "HttpPutResponseHopLimit": { + "type": "integer" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AutoScaling::LaunchConfiguration", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "ClassicLinkVPCId": { + "type": "string" + }, + "ClassicLinkVPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceMonitoring": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "MetadataOptions": { + "$ref": "#/definitions/MetadataOptions" + }, + "PlacementTenancy": { + "type": "string" + }, + "RamDiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SpotPrice": { + "type": "string" + }, + "UserData": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ImageId", + "InstanceType" + ], + "typeName": "AWS::AutoScaling::LaunchConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-lifecyclehook.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-lifecyclehook.json new file mode 100644 index 0000000000..884f7912ef --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-lifecyclehook.json @@ -0,0 +1,56 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AutoScalingGroupName", + "/properties/LifecycleHookName" + ], + "description": "Resource Type definition for AWS::AutoScaling::LifecycleHook", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DefaultResult": { + "enum": [ + "ABANDON", + "CONTINUE" + ], + "type": "string" + }, + "HeartbeatTimeout": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "enum": [ + "autoscaling:EC2_INSTANCE_LAUNCHING", + "autoscaling:EC2_INSTANCE_TERMINATING" + ], + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "LifecycleTransition", + "AutoScalingGroupName" + ], + "typeName": "AWS::AutoScaling::LifecycleHook" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-scalingpolicy.json new file mode 100644 index 0000000000..f1c0dad780 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-scalingpolicy.json @@ -0,0 +1,404 @@ +{ + "additionalProperties": false, + "definitions": { + "CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "enum": [ + "Average", + "Minimum", + "Maximum", + "SampleCount", + "Sum" + ], + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Statistic", + "Namespace" + ], + "type": "object" + }, + "Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "MetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/MetricStat" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/Metric" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Stat", + "Metric" + ], + "type": "object" + }, + "PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "enum": [ + "ASGAverageCPUUtilization", + "ASGAverageNetworkIn", + "ASGAverageNetworkOut", + "ALBRequestCountPerTarget" + ], + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacityBreachBehavior": { + "type": "string" + }, + "MaxCapacityBuffer": { + "type": "integer" + }, + "MetricSpecifications": { + "items": { + "$ref": "#/definitions/PredictiveScalingMetricSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Mode": { + "type": "string" + }, + "SchedulingBufferTime": { + "type": "integer" + } + }, + "required": [ + "MetricSpecifications" + ], + "type": "object" + }, + "PredictiveScalingCustomizedCapacityMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedLoadMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedScalingMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "CustomizedCapacityMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedCapacityMetric" + }, + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedLoadMetric" + }, + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedScalingMetric" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedLoadMetric" + }, + "PredefinedMetricPairSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedMetricPair" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedScalingMetric" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "PredictiveScalingPredefinedLoadMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedMetricPair": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedScalingMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "StepAdjustment": { + "additionalProperties": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/PredefinedMetricSpecification" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AutoScaling::ScalingPolicy", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdjustmentType": { + "enum": [ + "ChangeInCapacity", + "ExactCapacity", + "PercentChangeInCapacity" + ], + "type": "string" + }, + "AutoScalingGroupName": { + "type": "string" + }, + "Cooldown": { + "type": "string" + }, + "EstimatedInstanceWarmup": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "MetricAggregationType": { + "enum": [ + "Average", + "Maximum", + "Minimum" + ], + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "PolicyType": { + "enum": [ + "PredictiveScaling", + "SimpleScaling", + "StepScaling", + "TargetTrackingScaling" + ], + "type": "string" + }, + "PredictiveScalingConfiguration": { + "$ref": "#/definitions/PredictiveScalingConfiguration" + }, + "ScalingAdjustment": { + "type": "integer" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/StepAdjustment" + }, + "type": "array", + "uniqueItems": true + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/TargetTrackingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AutoScalingGroupName" + ], + "typeName": "AWS::AutoScaling::ScalingPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-scheduledaction.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-scheduledaction.json new file mode 100644 index 0000000000..72061ceb65 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-autoscaling-scheduledaction.json @@ -0,0 +1,46 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AutoScalingGroupName" + ], + "description": "Resource Type definition for AWS::AutoScaling::ScheduledAction", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DesiredCapacity": { + "type": "integer" + }, + "EndTime": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MaxSize": { + "type": "integer" + }, + "MinSize": { + "type": "integer" + }, + "Recurrence": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "TimeZone": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AutoScalingGroupName" + ], + "typeName": "AWS::AutoScaling::ScheduledAction" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudformation-waitcondition.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudformation-waitcondition.json new file mode 100644 index 0000000000..822d109c45 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudformation-waitcondition.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::CloudFormation::WaitCondition", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Count": { + "type": "integer" + }, + "Data": { + "type": "object" + }, + "Handle": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Timeout": { + "maximum": 43200, + "minimum": 0, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Data" + ], + "typeName": "AWS::CloudFormation::WaitCondition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-cachepolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-cachepolicy.json new file mode 100644 index 0000000000..f906582031 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-cachepolicy.json @@ -0,0 +1,179 @@ +{ + "additionalProperties": false, + "definitions": { + "CachePolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "DefaultTTL": { + "minimum": 0, + "multipleOf": 1.0, + "type": "number" + }, + "MaxTTL": { + "minimum": 0, + "multipleOf": 1.0, + "type": "number" + }, + "MinTTL": { + "minimum": 0, + "multipleOf": 1.0, + "type": "number" + }, + "Name": { + "type": "string" + }, + "ParametersInCacheKeyAndForwardedToOrigin": { + "$ref": "#/definitions/ParametersInCacheKeyAndForwardedToOrigin" + } + }, + "required": [ + "Name", + "MinTTL", + "MaxTTL", + "DefaultTTL", + "ParametersInCacheKeyAndForwardedToOrigin" + ], + "type": "object" + }, + "CookiesConfig": { + "additionalProperties": false, + "properties": { + "CookieBehavior": { + "pattern": "^(none|whitelist|allExcept|all)$", + "type": "string" + }, + "Cookies": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "CookieBehavior" + ], + "type": "object" + }, + "HeadersConfig": { + "additionalProperties": false, + "properties": { + "HeaderBehavior": { + "pattern": "^(none|whitelist)$", + "type": "string" + }, + "Headers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "HeaderBehavior" + ], + "type": "object" + }, + "ParametersInCacheKeyAndForwardedToOrigin": { + "additionalProperties": false, + "properties": { + "CookiesConfig": { + "$ref": "#/definitions/CookiesConfig" + }, + "EnableAcceptEncodingBrotli": { + "type": "boolean" + }, + "EnableAcceptEncodingGzip": { + "type": "boolean" + }, + "HeadersConfig": { + "$ref": "#/definitions/HeadersConfig" + }, + "QueryStringsConfig": { + "$ref": "#/definitions/QueryStringsConfig" + } + }, + "required": [ + "EnableAcceptEncodingGzip", + "HeadersConfig", + "CookiesConfig", + "QueryStringsConfig" + ], + "type": "object" + }, + "QueryStringsConfig": { + "additionalProperties": false, + "properties": { + "QueryStringBehavior": { + "pattern": "^(none|whitelist|allExcept|all)$", + "type": "string" + }, + "QueryStrings": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "QueryStringBehavior" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::CachePolicy", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateCachePolicy" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteCachePolicy" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListCachePolicies" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetCachePolicy" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateCachePolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CachePolicyConfig": { + "$ref": "#/definitions/CachePolicyConfig" + }, + "Id": { + "type": "string" + }, + "LastModifiedTime": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/LastModifiedTime" + ], + "required": [ + "CachePolicyConfig" + ], + "typeName": "AWS::CloudFront::CachePolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-cloudfrontoriginaccessidentity.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-cloudfrontoriginaccessidentity.json new file mode 100644 index 0000000000..3df15b0cb5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-cloudfrontoriginaccessidentity.json @@ -0,0 +1,67 @@ +{ + "additionalProperties": false, + "definitions": { + "CloudFrontOriginAccessIdentityConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "required": [ + "Comment" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::CloudFrontOriginAccessIdentity", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateCloudFrontOriginAccessIdentity" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteCloudFrontOriginAccessIdentity" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListCloudFrontOriginAccessIdentities" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetCloudFrontOriginAccessIdentity" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateCloudFrontOriginAccessIdentity" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CloudFrontOriginAccessIdentityConfig": { + "$ref": "#/definitions/CloudFrontOriginAccessIdentityConfig" + }, + "Id": { + "type": "string" + }, + "S3CanonicalUserId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/S3CanonicalUserId" + ], + "required": [ + "CloudFrontOriginAccessIdentityConfig" + ], + "typeName": "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-continuousdeploymentpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-continuousdeploymentpolicy.json new file mode 100644 index 0000000000..7fe992358e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-continuousdeploymentpolicy.json @@ -0,0 +1,168 @@ +{ + "additionalProperties": false, + "definitions": { + "ContinuousDeploymentPolicyConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "StagingDistributionDnsNames": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TrafficConfig": { + "$ref": "#/definitions/TrafficConfig" + } + }, + "required": [ + "Enabled", + "StagingDistributionDnsNames" + ], + "type": "object" + }, + "SessionStickinessConfig": { + "additionalProperties": false, + "properties": { + "IdleTTL": { + "maximum": 3600, + "minimum": 300, + "multipleOf": 1, + "type": "integer" + }, + "MaximumTTL": { + "maximum": 3600, + "minimum": 300, + "multipleOf": 1, + "type": "integer" + } + }, + "required": [ + "IdleTTL", + "MaximumTTL" + ], + "type": "object" + }, + "SingleHeaderConfig": { + "additionalProperties": false, + "properties": { + "Header": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 1783, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Header", + "Value" + ], + "type": "object" + }, + "SingleWeightConfig": { + "additionalProperties": false, + "properties": { + "SessionStickinessConfig": { + "$ref": "#/definitions/SessionStickinessConfig" + }, + "Weight": { + "maximum": 1, + "minimum": 0, + "multipleOf": 0.01, + "type": "number" + } + }, + "required": [ + "Weight" + ], + "type": "object" + }, + "TrafficConfig": { + "additionalProperties": false, + "properties": { + "SingleHeaderConfig": { + "$ref": "#/definitions/SingleHeaderConfig" + }, + "SingleWeightConfig": { + "$ref": "#/definitions/SingleWeightConfig" + }, + "Type": { + "enum": [ + "SingleWeight", + "SingleHeader" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::ContinuousDeploymentPolicy", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateContinuousDeploymentPolicy" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteContinuousDeploymentPolicy" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListContinuousDeploymentPolicies" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetContinuousDeploymentPolicy" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateContinuousDeploymentPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContinuousDeploymentPolicyConfig": { + "$ref": "#/definitions/ContinuousDeploymentPolicyConfig" + }, + "Id": { + "type": "string" + }, + "LastModifiedTime": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/LastModifiedTime" + ], + "required": [ + "ContinuousDeploymentPolicyConfig" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::ContinuousDeploymentPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-distribution.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-distribution.json new file mode 100644 index 0000000000..4985b2fc94 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-distribution.json @@ -0,0 +1,1267 @@ +{ + "additionalProperties": false, + "definitions": { + "CacheBehavior": { + "additionalProperties": false, + "properties": { + "AllowedMethods": { + "default": [ + "GET", + "HEAD" + ], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CachePolicyId": { + "type": "string" + }, + "CachedMethods": { + "default": [ + "GET", + "HEAD" + ], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Compress": { + "default": false, + "type": "boolean" + }, + "DefaultTTL": { + "default": 86400, + "type": "number" + }, + "FieldLevelEncryptionId": { + "default": "", + "type": "string" + }, + "ForwardedValues": { + "$ref": "#/definitions/ForwardedValues" + }, + "FunctionAssociations": { + "items": { + "$ref": "#/definitions/FunctionAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/LambdaFunctionAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "MaxTTL": { + "default": 31536000, + "type": "number" + }, + "MinTTL": { + "default": 0, + "type": "number" + }, + "OriginRequestPolicyId": { + "type": "string" + }, + "PathPattern": { + "type": "string" + }, + "RealtimeLogConfigArn": { + "type": "string" + }, + "ResponseHeadersPolicyId": { + "type": "string" + }, + "SmoothStreaming": { + "default": false, + "type": "boolean" + }, + "TargetOriginId": { + "type": "string" + }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ViewerProtocolPolicy": { + "enum": [ + "allow-all", + "https-only", + "redirect-to-https" + ], + "type": "string" + } + }, + "required": [ + "PathPattern", + "TargetOriginId", + "ViewerProtocolPolicy" + ], + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "properties": { + "Forward": { + "type": "string" + }, + "WhitelistedNames": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Forward" + ], + "type": "object" + }, + "CustomErrorResponse": { + "additionalProperties": false, + "dependencies": { + "ResponseCode": [ + "ResponsePagePath" + ] + }, + "properties": { + "ErrorCachingMinTTL": { + "default": 300, + "type": "number" + }, + "ErrorCode": { + "enum": [ + 400, + 403, + 404, + 405, + 414, + 416, + 500, + 501, + 502, + 503, + 504 + ], + "type": "integer" + }, + "ResponseCode": { + "enum": [ + 200, + 400, + 403, + 404, + 405, + 414, + 416, + 500, + 501, + 502, + 503, + 504 + ], + "type": "integer" + }, + "ResponsePagePath": { + "type": "string" + } + }, + "required": [ + "ErrorCode" + ], + "type": "object" + }, + "CustomOriginConfig": { + "additionalProperties": false, + "properties": { + "HTTPPort": { + "default": 80, + "type": "integer" + }, + "HTTPSPort": { + "default": 443, + "type": "integer" + }, + "OriginKeepaliveTimeout": { + "default": 5, + "type": "integer" + }, + "OriginProtocolPolicy": { + "type": "string" + }, + "OriginReadTimeout": { + "default": 30, + "type": "integer" + }, + "OriginSSLProtocols": { + "default": [ + "TLSv1", + "SSLv3" + ], + "items": { + "enum": [ + "SSLv3", + "TLSv1", + "TLSv1.1", + "TLSv1.2" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "OriginProtocolPolicy" + ], + "type": "object" + }, + "DefaultCacheBehavior": { + "additionalProperties": false, + "properties": { + "AllowedMethods": { + "default": [ + "GET", + "HEAD" + ], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CachePolicyId": { + "default": "", + "type": "string" + }, + "CachedMethods": { + "default": [ + "GET", + "HEAD" + ], + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Compress": { + "default": false, + "type": "boolean" + }, + "DefaultTTL": { + "default": 86400, + "type": "number" + }, + "FieldLevelEncryptionId": { + "default": "", + "type": "string" + }, + "ForwardedValues": { + "$ref": "#/definitions/ForwardedValues" + }, + "FunctionAssociations": { + "items": { + "$ref": "#/definitions/FunctionAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/LambdaFunctionAssociation" + }, + "type": "array", + "uniqueItems": false + }, + "MaxTTL": { + "default": 31536000, + "type": "number" + }, + "MinTTL": { + "default": 0, + "type": "number" + }, + "OriginRequestPolicyId": { + "default": "", + "type": "string" + }, + "RealtimeLogConfigArn": { + "default": "", + "type": "string" + }, + "ResponseHeadersPolicyId": { + "default": "", + "type": "string" + }, + "SmoothStreaming": { + "default": false, + "type": "boolean" + }, + "TargetOriginId": { + "type": "string" + }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ViewerProtocolPolicy": { + "type": "string" + } + }, + "required": [ + "TargetOriginId", + "ViewerProtocolPolicy" + ], + "type": "object" + }, + "DistributionConfig": { + "additionalProperties": false, + "properties": { + "Aliases": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CNAMEs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CacheBehaviors": { + "items": { + "$ref": "#/definitions/CacheBehavior" + }, + "type": "array", + "uniqueItems": false + }, + "Comment": { + "default": "", + "type": "string" + }, + "ContinuousDeploymentPolicyId": { + "type": "string" + }, + "CustomErrorResponses": { + "items": { + "$ref": "#/definitions/CustomErrorResponse" + }, + "type": "array", + "uniqueItems": false + }, + "CustomOrigin": { + "$ref": "#/definitions/LegacyCustomOrigin" + }, + "DefaultCacheBehavior": { + "$ref": "#/definitions/DefaultCacheBehavior" + }, + "DefaultRootObject": { + "default": "", + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "HttpVersion": { + "default": "http1.1", + "enum": [ + "http1.1", + "http2", + "http3", + "http2and3" + ], + "type": "string" + }, + "IPV6Enabled": { + "type": "boolean" + }, + "Logging": { + "$ref": "#/definitions/Logging" + }, + "OriginGroups": { + "$ref": "#/definitions/OriginGroups" + }, + "Origins": { + "items": { + "$ref": "#/definitions/Origin" + }, + "type": "array", + "uniqueItems": false + }, + "PriceClass": { + "default": "PriceClass_All", + "enum": [ + "PriceClass_100", + "PriceClass_200", + "PriceClass_All" + ], + "type": "string" + }, + "Restrictions": { + "$ref": "#/definitions/Restrictions", + "default": { + "GeoRestriction": { + "RestrictionType": "none" + } + } + }, + "S3Origin": { + "$ref": "#/definitions/LegacyS3Origin" + }, + "Staging": { + "type": "boolean" + }, + "ViewerCertificate": { + "$ref": "#/definitions/ViewerCertificate", + "default": { + "CloudFrontDefaultCertificate": true + } + }, + "WebACLId": { + "default": "", + "type": "string" + } + }, + "required": [ + "Enabled", + "DefaultCacheBehavior" + ], + "type": "object" + }, + "ForwardedValues": { + "additionalProperties": false, + "properties": { + "Cookies": { + "$ref": "#/definitions/Cookies", + "default": { + "Forward": "none" + } + }, + "Headers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryString": { + "type": "boolean" + }, + "QueryStringCacheKeys": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "QueryString" + ], + "type": "object" + }, + "FunctionAssociation": { + "additionalProperties": false, + "properties": { + "EventType": { + "enum": [ + "viewer-request", + "viewer-response", + "origin-request", + "origin-response" + ], + "type": "string" + }, + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "GeoRestriction": { + "additionalProperties": false, + "properties": { + "Locations": { + "items": { + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "YE", + "YT", + "ZA", + "ZM", + "ZW" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "RestrictionType": { + "enum": [ + "blacklist", + "whitelist", + "none" + ], + "type": "string" + } + }, + "required": [ + "RestrictionType" + ], + "type": "object" + }, + "LambdaFunctionAssociation": { + "additionalProperties": false, + "properties": { + "EventType": { + "type": "string" + }, + "IncludeBody": { + "type": "boolean" + }, + "LambdaFunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "LegacyCustomOrigin": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "HTTPPort": { + "default": 80, + "type": "integer" + }, + "HTTPSPort": { + "default": 443, + "type": "integer" + }, + "OriginProtocolPolicy": { + "enum": [ + "http-only", + "match-viewer", + "https-only" + ], + "type": "string" + }, + "OriginSSLProtocols": { + "items": { + "enum": [ + "SSLv3", + "TLSv1", + "TLSv1.1", + "TLSv1.2" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "DNSName", + "OriginProtocolPolicy", + "OriginSSLProtocols" + ], + "type": "object" + }, + "LegacyS3Origin": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "OriginAccessIdentity": { + "default": "", + "type": "string" + } + }, + "required": [ + "DNSName" + ], + "type": "object" + }, + "Logging": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "IncludeCookies": { + "default": false, + "type": "boolean" + }, + "Prefix": { + "default": "", + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "Origin": { + "additionalProperties": false, + "dependencies": { + "CustomOriginConfig": { + "properties": { + "S3OriginConfig": false + }, + "type": "object" + } + }, + "properties": { + "ConnectionAttempts": { + "type": "integer" + }, + "ConnectionTimeout": { + "type": "integer" + }, + "CustomOriginConfig": { + "$ref": "#/definitions/CustomOriginConfig" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OriginAccessControlId": { + "type": "string" + }, + "OriginCustomHeaders": { + "items": { + "$ref": "#/definitions/OriginCustomHeader" + }, + "type": "array", + "uniqueItems": false + }, + "OriginPath": { + "default": "", + "type": "string" + }, + "OriginShield": { + "$ref": "#/definitions/OriginShield" + }, + "S3OriginConfig": { + "$ref": "#/definitions/S3OriginConfig" + } + }, + "required": [ + "DomainName", + "Id" + ], + "type": "object" + }, + "OriginCustomHeader": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "HeaderValue": { + "type": "string" + } + }, + "required": [ + "HeaderValue", + "HeaderName" + ], + "type": "object" + }, + "OriginGroup": { + "additionalProperties": false, + "properties": { + "FailoverCriteria": { + "$ref": "#/definitions/OriginGroupFailoverCriteria" + }, + "Id": { + "type": "string" + }, + "Members": { + "$ref": "#/definitions/OriginGroupMembers" + } + }, + "required": [ + "Id", + "FailoverCriteria", + "Members" + ], + "type": "object" + }, + "OriginGroupFailoverCriteria": { + "additionalProperties": false, + "properties": { + "StatusCodes": { + "$ref": "#/definitions/StatusCodes" + } + }, + "required": [ + "StatusCodes" + ], + "type": "object" + }, + "OriginGroupMember": { + "additionalProperties": false, + "properties": { + "OriginId": { + "type": "string" + } + }, + "required": [ + "OriginId" + ], + "type": "object" + }, + "OriginGroupMembers": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/OriginGroupMember" + }, + "type": "array", + "uniqueItems": false + }, + "Quantity": { + "type": "integer" + } + }, + "required": [ + "Quantity", + "Items" + ], + "type": "object" + }, + "OriginGroups": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/OriginGroup" + }, + "type": "array", + "uniqueItems": false + }, + "Quantity": { + "type": "integer" + } + }, + "required": [ + "Quantity" + ], + "type": "object" + }, + "OriginShield": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OriginShieldRegion": { + "type": "string" + } + }, + "type": "object" + }, + "Restrictions": { + "additionalProperties": false, + "properties": { + "GeoRestriction": { + "$ref": "#/definitions/GeoRestriction" + } + }, + "required": [ + "GeoRestriction" + ], + "type": "object" + }, + "S3OriginConfig": { + "additionalProperties": false, + "properties": { + "OriginAccessIdentity": { + "default": "", + "type": "string" + } + }, + "type": "object" + }, + "StatusCodes": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "integer" + }, + "type": "array", + "uniqueItems": false + }, + "Quantity": { + "type": "integer" + } + }, + "required": [ + "Quantity", + "Items" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "ViewerCertificate": { + "additionalProperties": false, + "dependencies": { + "AcmCertificateArn": [ + "SslSupportMethod" + ], + "IamCertificateId": [ + "SslSupportMethod" + ] + }, + "oneOf": [ + { + "properties": { + "CloudFrontDefaultCertificate": false, + "IamCertificateId": false + }, + "required": [ + "AcmCertificateArn" + ], + "type": "object" + }, + { + "properties": { + "AcmCertificateArn": false, + "IamCertificateId": false + }, + "required": [ + "CloudFrontDefaultCertificate" + ], + "type": "object" + }, + { + "properties": { + "AcmCertificateArn": false, + "CloudFrontDefaultCertificate": false + }, + "required": [ + "IamCertificateId" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['AcmCertificateArn', 'CloudFrontDefaultCertificate', 'IamCertificateId']", + "properties": { + "AcmCertificateArn": { + "type": "string" + }, + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "IamCertificateId": { + "type": "string" + }, + "MinimumProtocolVersion": { + "enum": [ + "SSLv3", + "TLSv1", + "TLSv1_2016", + "TLSv1.1_2016", + "TLSv1.2_2018", + "TLSv1.2_2019", + "TLSv1.2_2021" + ], + "type": "string" + }, + "SslSupportMethod": { + "enum": [ + "sni-only", + "vip", + "static-ip" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Distribution", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateDistribution*", + "cloudfront:TagResource" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteDistribution*" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListDistributions*" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetDistribution*" + ] + }, + "update": { + "permissions": [ + "cloudfront:GetDistribution*", + "cloudfront:UpdateDistribution*", + "cloudfront:ListTagsForResource*", + "cloudfront:TagResource", + "cloudfront:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DistributionConfig": { + "$ref": "#/definitions/DistributionConfig" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/DomainName" + ], + "required": [ + "DistributionConfig" + ], + "typeName": "AWS::CloudFront::Distribution" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-function.json new file mode 100644 index 0000000000..2ea8ab0d15 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-function.json @@ -0,0 +1,100 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-keygroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-keygroup.json new file mode 100644 index 0000000000..5cfdb07541 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-keygroup.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "definitions": { + "KeyGroupConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name", + "Items" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::KeyGroup", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateKeyGroup" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteKeyGroup" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListKeyGroups" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetKeyGroup" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateKeyGroup" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "KeyGroupConfig": { + "$ref": "#/definitions/KeyGroupConfig" + }, + "LastModifiedTime": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/LastModifiedTime" + ], + "required": [ + "KeyGroupConfig" + ], + "typeName": "AWS::CloudFront::KeyGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-monitoringsubscription.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-monitoringsubscription.json new file mode 100644 index 0000000000..f4ca0fdeb7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-monitoringsubscription.json @@ -0,0 +1,67 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DistributionId" + ], + "definitions": { + "MonitoringSubscription": { + "additionalProperties": false, + "properties": { + "RealtimeMetricsSubscriptionConfig": { + "$ref": "#/definitions/RealtimeMetricsSubscriptionConfig" + } + }, + "type": "object" + }, + "RealtimeMetricsSubscriptionConfig": { + "additionalProperties": false, + "properties": { + "RealtimeMetricsSubscriptionStatus": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string" + } + }, + "required": [ + "RealtimeMetricsSubscriptionStatus" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::MonitoringSubscription", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateMonitoringSubscription" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteMonitoringSubscription" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetMonitoringSubscription" + ] + } + }, + "primaryIdentifier": [ + "/properties/DistributionId" + ], + "properties": { + "DistributionId": { + "type": "string" + }, + "MonitoringSubscription": { + "$ref": "#/definitions/MonitoringSubscription" + } + }, + "required": [ + "DistributionId", + "MonitoringSubscription" + ], + "typeName": "AWS::CloudFront::MonitoringSubscription" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-originaccesscontrol.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-originaccesscontrol.json new file mode 100644 index 0000000000..08fe799561 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-originaccesscontrol.json @@ -0,0 +1,82 @@ +{ + "additionalProperties": false, + "definitions": { + "OriginAccessControlConfig": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OriginAccessControlOriginType": { + "pattern": "^(s3)$", + "type": "string" + }, + "SigningBehavior": { + "pattern": "^(never|no-override|always)$", + "type": "string" + }, + "SigningProtocol": { + "pattern": "^(sigv4)$", + "type": "string" + } + }, + "required": [ + "Name", + "SigningProtocol", + "SigningBehavior", + "OriginAccessControlOriginType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::OriginAccessControl", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateOriginAccessControl" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteOriginAccessControl" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListOriginAccessControls" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetOriginAccessControl" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateOriginAccessControl" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "OriginAccessControlConfig": { + "$ref": "#/definitions/OriginAccessControlConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "OriginAccessControlConfig" + ], + "taggable": false, + "typeName": "AWS::CloudFront::OriginAccessControl" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-originrequestpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-originrequestpolicy.json new file mode 100644 index 0000000000..4d4a9bff4b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-originrequestpolicy.json @@ -0,0 +1,142 @@ +{ + "additionalProperties": false, + "definitions": { + "CookiesConfig": { + "additionalProperties": false, + "properties": { + "CookieBehavior": { + "pattern": "^(none|whitelist|all)$", + "type": "string" + }, + "Cookies": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "CookieBehavior" + ], + "type": "object" + }, + "HeadersConfig": { + "additionalProperties": false, + "properties": { + "HeaderBehavior": { + "pattern": "^(none|whitelist|allViewer|allViewerAndWhitelistCloudFront)$", + "type": "string" + }, + "Headers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "HeaderBehavior" + ], + "type": "object" + }, + "OriginRequestPolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "CookiesConfig": { + "$ref": "#/definitions/CookiesConfig" + }, + "HeadersConfig": { + "$ref": "#/definitions/HeadersConfig" + }, + "Name": { + "type": "string" + }, + "QueryStringsConfig": { + "$ref": "#/definitions/QueryStringsConfig" + } + }, + "required": [ + "Name", + "HeadersConfig", + "CookiesConfig", + "QueryStringsConfig" + ], + "type": "object" + }, + "QueryStringsConfig": { + "additionalProperties": false, + "properties": { + "QueryStringBehavior": { + "pattern": "^(none|whitelist|all)$", + "type": "string" + }, + "QueryStrings": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "QueryStringBehavior" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::OriginRequestPolicy", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateOriginRequestPolicy" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteOriginRequestPolicy" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListOriginRequestPolicies" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetOriginRequestPolicy" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateOriginRequestPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "LastModifiedTime": { + "type": "string" + }, + "OriginRequestPolicyConfig": { + "$ref": "#/definitions/OriginRequestPolicyConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/LastModifiedTime" + ], + "required": [ + "OriginRequestPolicyConfig" + ], + "typeName": "AWS::CloudFront::OriginRequestPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-publickey.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-publickey.json new file mode 100644 index 0000000000..e9cb84a4d1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-publickey.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "definitions": { + "PublicKeyConfig": { + "additionalProperties": false, + "properties": { + "CallerReference": { + "type": "string" + }, + "Comment": { + "type": "string" + }, + "EncodedKey": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CallerReference", + "Name", + "EncodedKey" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::PublicKey", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreatePublicKey" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeletePublicKey" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListPublicKeys" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetPublicKey" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdatePublicKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CreatedTime": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PublicKeyConfig": { + "$ref": "#/definitions/PublicKeyConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/CreatedTime" + ], + "required": [ + "PublicKeyConfig" + ], + "typeName": "AWS::CloudFront::PublicKey" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-realtimelogconfig.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-realtimelogconfig.json new file mode 100644 index 0000000000..49aeb7d99e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-realtimelogconfig.json @@ -0,0 +1,111 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EndPoint": { + "additionalProperties": false, + "properties": { + "KinesisStreamConfig": { + "$ref": "#/definitions/KinesisStreamConfig" + }, + "StreamType": { + "type": "string" + } + }, + "required": [ + "KinesisStreamConfig", + "StreamType" + ], + "type": "object" + }, + "KinesisStreamConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamArn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::RealtimeLogConfig", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateRealtimeLogConfig" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteRealtimeLogConfig" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListRealtimeLogConfigs" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetRealtimeLogConfig" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateRealtimeLogConfig" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EndPoints": { + "items": { + "$ref": "#/definitions/EndPoint" + }, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Fields": { + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "SamplingRate": { + "maximum": 100, + "minimum": 1, + "multipleOf": 1.0, + "type": "number" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name", + "EndPoints", + "Fields", + "SamplingRate" + ], + "typeName": "AWS::CloudFront::RealtimeLogConfig" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-responseheaderspolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-responseheaderspolicy.json new file mode 100644 index 0000000000..df70760cef --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudfront-responseheaderspolicy.json @@ -0,0 +1,367 @@ +{ + "additionalProperties": false, + "definitions": { + "AccessControlAllowHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AccessControlAllowMethods": { + "additionalProperties": false, + "properties": { + "Items": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AccessControlAllowOrigins": { + "additionalProperties": false, + "properties": { + "Items": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AccessControlExposeHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "ContentSecurityPolicy": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "Override", + "ContentSecurityPolicy" + ], + "type": "object" + }, + "ContentTypeOptions": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + } + }, + "required": [ + "Override" + ], + "type": "object" + }, + "CorsConfig": { + "additionalProperties": false, + "properties": { + "AccessControlAllowCredentials": { + "type": "boolean" + }, + "AccessControlAllowHeaders": { + "$ref": "#/definitions/AccessControlAllowHeaders" + }, + "AccessControlAllowMethods": { + "$ref": "#/definitions/AccessControlAllowMethods" + }, + "AccessControlAllowOrigins": { + "$ref": "#/definitions/AccessControlAllowOrigins" + }, + "AccessControlExposeHeaders": { + "$ref": "#/definitions/AccessControlExposeHeaders" + }, + "AccessControlMaxAgeSec": { + "type": "integer" + }, + "OriginOverride": { + "type": "boolean" + } + }, + "required": [ + "AccessControlAllowOrigins", + "AccessControlAllowHeaders", + "AccessControlAllowMethods", + "AccessControlAllowCredentials", + "OriginOverride" + ], + "type": "object" + }, + "CustomHeader": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "string" + }, + "Override": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Header", + "Value", + "Override" + ], + "type": "object" + }, + "CustomHeadersConfig": { + "additionalProperties": false, + "properties": { + "Items": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomHeader" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "FrameOptions": { + "additionalProperties": false, + "properties": { + "FrameOption": { + "pattern": "^(DENY|SAMEORIGIN)$", + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "Override", + "FrameOption" + ], + "type": "object" + }, + "ReferrerPolicy": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + }, + "ReferrerPolicy": { + "pattern": "^(no-referrer|no-referrer-when-downgrade|origin|origin-when-cross-origin|same-origin|strict-origin|strict-origin-when-cross-origin|unsafe-url)$", + "type": "string" + } + }, + "required": [ + "Override", + "ReferrerPolicy" + ], + "type": "object" + }, + "ResponseHeadersPolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "CorsConfig": { + "$ref": "#/definitions/CorsConfig" + }, + "CustomHeadersConfig": { + "$ref": "#/definitions/CustomHeadersConfig" + }, + "Name": { + "type": "string" + }, + "SecurityHeadersConfig": { + "$ref": "#/definitions/SecurityHeadersConfig" + }, + "ServerTimingHeadersConfig": { + "$ref": "#/definitions/ServerTimingHeadersConfig" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SecurityHeadersConfig": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "$ref": "#/definitions/ContentSecurityPolicy" + }, + "ContentTypeOptions": { + "$ref": "#/definitions/ContentTypeOptions" + }, + "FrameOptions": { + "$ref": "#/definitions/FrameOptions" + }, + "ReferrerPolicy": { + "$ref": "#/definitions/ReferrerPolicy" + }, + "StrictTransportSecurity": { + "$ref": "#/definitions/StrictTransportSecurity" + }, + "XSSProtection": { + "$ref": "#/definitions/XSSProtection" + } + }, + "required": [], + "type": "object" + }, + "ServerTimingHeadersConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SamplingRate": { + "maximum": 100, + "minimum": 0, + "multipleOf": 0.0001, + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "StrictTransportSecurity": { + "additionalProperties": false, + "properties": { + "AccessControlMaxAgeSec": { + "type": "integer" + }, + "IncludeSubdomains": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Preload": { + "type": "boolean" + } + }, + "required": [ + "Override", + "AccessControlMaxAgeSec" + ], + "type": "object" + }, + "XSSProtection": { + "additionalProperties": false, + "properties": { + "ModeBlock": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Protection": { + "type": "boolean" + }, + "ReportUri": { + "type": "string" + } + }, + "required": [ + "Override", + "Protection" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::ResponseHeadersPolicy", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateResponseHeadersPolicy" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteResponseHeadersPolicy" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListResponseHeadersPolicies" + ] + }, + "read": { + "permissions": [ + "cloudfront:GetResponseHeadersPolicy" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateResponseHeadersPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "LastModifiedTime": { + "type": "string" + }, + "ResponseHeadersPolicyConfig": { + "$ref": "#/definitions/ResponseHeadersPolicyConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/LastModifiedTime" + ], + "required": [ + "ResponseHeadersPolicyConfig" + ], + "taggable": false, + "typeName": "AWS::CloudFront::ResponseHeadersPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-codepipeline-customactiontype.json new file mode 100644 index 0000000000..6ab4bff7bf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-codepipeline-customactiontype.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigurationProperties", + "/properties/OutputArtifactDetails", + "/properties/Version", + "/properties/InputArtifactDetails", + "/properties/Settings", + "/properties/Provider", + "/properties/Category" + ], + "definitions": { + "ArtifactDetails": { + "additionalProperties": false, + "properties": { + "MaximumCount": { + "type": "integer" + }, + "MinimumCount": { + "type": "integer" + } + }, + "required": [ + "MinimumCount", + "MaximumCount" + ], + "type": "object" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Key": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { + "enum": [ + "String", + "Number", + "Boolean" + ], + "type": "string" + } + }, + "required": [ + "Secret", + "Required", + "Key", + "Name" + ], + "type": "object" + }, + "Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodePipeline::CustomActionType", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { + "items": { + "$ref": "#/definitions/ConfigurationProperties" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "Provider": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/Settings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Category", + "InputArtifactDetails", + "Version", + "OutputArtifactDetails", + "Provider" + ], + "typeName": "AWS::CodePipeline::CustomActionType" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-datapipeline-pipeline.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-datapipeline-pipeline.json new file mode 100644 index 0000000000..d2d735d9b1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-datapipeline-pipeline.json @@ -0,0 +1,173 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "StringValue", + "Key" + ], + "type": "object" + }, + "ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/ParameterAttribute" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/Field" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DataPipeline::Pipeline", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/ParameterObject" + }, + "type": "array", + "uniqueItems": false + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/ParameterValue" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/PipelineObject" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/PipelineTag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParameterObjects", + "Name" + ], + "typeName": "AWS::DataPipeline::Pipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-directoryservice-microsoftad.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-directoryservice-microsoftad.json new file mode 100644 index 0000000000..2ff7abecf1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-directoryservice-microsoftad.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcSettings", + "/properties/Edition", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::MicrosoftAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Edition": { + "enum": [ + "Enterprise", + "Standard" + ], + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::MicrosoftAD" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-directoryservice-simplead.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-directoryservice-simplead.json new file mode 100644 index 0000000000..7646d8ecbe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-directoryservice-simplead.json @@ -0,0 +1,93 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Size", + "/properties/VpcSettings", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/Description", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::SimpleAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "enum": [ + "Small", + "Large" + ], + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Size", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::SimpleAD" +} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-customergateway.json new file mode 100644 index 0000000000..fb66d92fc4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-customergateway.json @@ -0,0 +1,63 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/IpAddress", + "/properties/BgpAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CustomerGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BgpAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "IpAddress", + "BgpAsn" + ], + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-dhcpoptions.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-dhcpoptions.json new file mode 100644 index 0000000000..9ff3d76e5b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-dhcpoptions.json @@ -0,0 +1,81 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/NetbiosNameServers", + "/properties/NetbiosNodeType", + "/properties/NtpServers", + "/properties/DomainName", + "/properties/DomainNameServers" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::DHCPOptions", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DomainName": { + "type": "string" + }, + "DomainNameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "NetbiosNameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "NetbiosNodeType": { + "enum": [ + "1", + "2", + "4", + "8" + ], + "type": "integer" + }, + "NtpServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::EC2::DHCPOptions" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-eip.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-eip.json new file mode 100644 index 0000000000..1b598ecc17 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-eip.json @@ -0,0 +1,65 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Domain", + "/properties/NetworkBorderGroup" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::EIP", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocationId": { + "type": "string" + }, + "Domain": { + "enum": [ + "vpc", + "standard" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkBorderGroup": { + "type": "string" + }, + "PublicIpv4Pool": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/AllocationId" + ], + "typeName": "AWS::EC2::EIP" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json new file mode 100644 index 0000000000..30e7b5c2d0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-host.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceType", + "/properties/AvailabilityZone" + ], + "description": "Resource Type definition for AWS::EC2::Host", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoPlacement": { + "enum": [ + "on", + "off" + ], + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "HostRecovery": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone", + "InstanceType" + ], + "typeName": "AWS::EC2::Host" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkinterface.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkinterface.json new file mode 100644 index 0000000000..d265a3421d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkinterface.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PrivateIpAddress", + "/properties/InterfaceType", + "/properties/SubnetId" + ], + "definitions": { + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::NetworkInterface", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InterfaceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "PrimaryPrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SecondaryPrivateIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecondaryPrivateIpAddresses", + "/properties/PrimaryPrivateIpAddress" + ], + "required": [ + "SubnetId" + ], + "typeName": "AWS::EC2::NetworkInterface" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkinterfacepermission.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkinterfacepermission.json new file mode 100644 index 0000000000..f16f086ec1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-networkinterfacepermission.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/Permission", + "/properties/NetworkInterfaceId" + ], + "description": "Resource Type definition for AWS::EC2::NetworkInterfacePermission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AwsAccountId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "Permission": { + "enum": [ + "INSTANCE-ATTACH", + "EIP-ASSOCIATE" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AwsAccountId", + "Permission", + "NetworkInterfaceId" + ], + "typeName": "AWS::EC2::NetworkInterfacePermission" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-placementgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-placementgroup.json new file mode 100644 index 0000000000..03b09a1350 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-placementgroup.json @@ -0,0 +1,104 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Strategy", + "/properties/SpreadLevel", + "/properties/PartitionCount" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::PlacementGroup", + "handlers": { + "create": { + "permissions": [ + "ec2:CreatePlacementGroup", + "ec2:DescribePlacementGroups", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeletePlacementGroup", + "ec2:DescribePlacementGroups" + ] + }, + "list": { + "permissions": [ + "ec2:DescribePlacementGroups" + ] + }, + "read": { + "permissions": [ + "ec2:DescribePlacementGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/GroupName" + ], + "properties": { + "GroupName": { + "description": "The Group Name of Placement Group.", + "type": "string" + }, + "PartitionCount": { + "description": "The number of partitions. Valid only when **Strategy** is set to `partition`", + "type": "integer" + }, + "SpreadLevel": { + "description": "The Spread Level of Placement Group is an enum where it accepts either host or rack when strategy is spread", + "type": "string" + }, + "Strategy": { + "description": "The placement strategy.", + "enum": [ + "cluster", + "partition", + "spread" + ], + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/GroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", + "tagging": { + "cloudFormationSystemTags": false, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::EC2::PlacementGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-spotfleet.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-spotfleet.json new file mode 100644 index 0000000000..2438ee72a8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-spotfleet.json @@ -0,0 +1,639 @@ +{ + "additionalProperties": false, + "definitions": { + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/ClassicLoadBalancer" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "integer" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/FleetLaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/LaunchTemplateOverrides" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/TargetGroupsConfig" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "SpotCapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/IamInstanceProfileSpecification" + }, + "ImageId": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/SpotFleetMonitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/InstanceNetworkInterfaceSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Placement": { + "$ref": "#/definitions/SpotPlacement" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/GroupIdentifier" + }, + "type": "array", + "uniqueItems": true + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetTagSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "UserData": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "ImageId", + "InstanceType" + ], + "type": "object" + }, + "SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string" + }, + "IamFleetRole": { + "awsType": "IamRoleArn", + "type": "string" + }, + "InstanceInterruptionBehavior": { + "type": "string" + }, + "InstancePoolsToUseCount": { + "type": "integer" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetLaunchSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/LaunchTemplateConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/LoadBalancersConfig" + }, + "OnDemandAllocationStrategy": { + "type": "string" + }, + "OnDemandMaxTotalPrice": { + "type": "string" + }, + "OnDemandTargetCapacity": { + "type": "integer" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotMaintenanceStrategies": { + "$ref": "#/definitions/SpotMaintenanceStrategies" + }, + "SpotMaxTotalPrice": { + "type": "string" + }, + "SpotPrice": { + "type": "string" + }, + "TargetCapacity": { + "type": "integer" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { + "type": "string" + } + }, + "required": [ + "IamFleetRole", + "TargetCapacity" + ], + "type": "object" + }, + "SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "SpotMaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/SpotCapacityRebalance" + } + }, + "type": "object" + }, + "SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroup" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::SpotFleet", + "oneOf": [ + { + "properties": { + "LaunchTemplateConfigs": false + }, + "required": [ + "LaunchSpecifications" + ], + "type": "object" + }, + { + "properties": { + "LaunchSpecifications": false + }, + "required": [ + "LaunchTemplateConfigs" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['LaunchSpecifications', 'LaunchTemplateConfigs']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/SpotFleetRequestConfigData" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SpotFleetRequestConfigData" + ], + "typeName": "AWS::EC2::SpotFleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgateway.json new file mode 100644 index 0000000000..829d5050ff --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgateway.json @@ -0,0 +1,124 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AmazonSideAsn", + "/properties/MulticastSupport" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::TransitGateway", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateTransitGateway", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteTransitGateway", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGateways", + "ec2:DescribeTags" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGateways", + "ec2:DescribeTags" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyTransitGateway", + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:ModifyTransitGatewayOptions" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonSideAsn": { + "format": "int64", + "type": "integer" + }, + "AssociationDefaultRouteTableId": { + "type": "string" + }, + "AutoAcceptSharedAttachments": { + "type": "string" + }, + "DefaultRouteTableAssociation": { + "type": "string" + }, + "DefaultRouteTablePropagation": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DnsSupport": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MulticastSupport": { + "type": "string" + }, + "PropagationDefaultRouteTableId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayArn": { + "type": "string" + }, + "TransitGatewayCidrBlocks": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpnEcmpSupport": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/TransitGatewayArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "taggable": true + }, + "typeName": "AWS::EC2::TransitGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgatewayattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgatewayattachment.json new file mode 100644 index 0000000000..47b853e538 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgatewayattachment.json @@ -0,0 +1,157 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/VpcId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::TransitGatewayAttachment", + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "description": "The options for the transit gateway vpc attachment.", + "properties": { + "ApplianceModeSupport": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "DnsSupport": { + "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "Ipv6Support": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + } + }, + "type": "object" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "SubnetIds", + "TransitGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgatewayroute.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgatewayroute.json new file mode 100644 index 0000000000..ba5a41f952 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgatewayroute.json @@ -0,0 +1,37 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Blackhole", + "/properties/TransitGatewayRouteTableId", + "/properties/TransitGatewayAttachmentId", + "/properties/DestinationCidrBlock" + ], + "description": "Resource Type definition for AWS::EC2::TransitGatewayRoute", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Blackhole": { + "type": "boolean" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TransitGatewayRouteTableId" + ], + "typeName": "AWS::EC2::TransitGatewayRoute" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgatewayvpcattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgatewayvpcattachment.json new file mode 100644 index 0000000000..390b6a9424 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-transitgatewayvpcattachment.json @@ -0,0 +1,141 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/SubnetIds", + "/properties/VpcId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::TransitGatewayVpcAttachment", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyTransitGatewayVpcAttachment", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DeleteTags", + "ec2:CreateTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AddSubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "description": "The options for the transit gateway vpc attachment.", + "properties": { + "ApplianceModeSupport": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "DnsSupport": { + "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "Ipv6Support": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + } + }, + "type": "object" + }, + "RemoveSubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SubnetIds", + "VpcId", + "TransitGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayVpcAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-volume.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-volume.json new file mode 100644 index 0000000000..6126f7c814 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-volume.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::Volume", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAttachEnabled": { + "type": "boolean" + }, + "OutpostArn": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone" + ], + "typeName": "AWS::EC2::Volume" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpcendpoint.json new file mode 100644 index 0000000000..c3678aa75e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpcendpoint.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/ServiceName" + ], + "description": "Resource Type definition for AWS::EC2::VPCEndpoint", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "ServiceName" + ], + "typeName": "AWS::EC2::VPCEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..1eadcb5ca9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnection.json @@ -0,0 +1,87 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/StaticRoutesOnly", + "/properties/VpnGatewayId", + "/properties/VpnTunnelOptionsSpecifications" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNConnection", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnectionroute.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnectionroute.json new file mode 100644 index 0000000000..937c564bf6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpnconnectionroute.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DestinationCidrBlock", + "/properties/VpnConnectionId" + ], + "description": "Resource Type definition for AWS::EC2::VPNConnectionRoute", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DestinationCidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], + "typeName": "AWS::EC2::VPNConnectionRoute" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..75dbfb349e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpngateway.json @@ -0,0 +1,54 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/AmazonSideAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonSideAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-cluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-cluster.json new file mode 100644 index 0000000000..eee698bbc5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-cluster.json @@ -0,0 +1,199 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterName" + ], + "definitions": { + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "description": "A capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used.", + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "ClusterConfiguration": { + "additionalProperties": false, + "description": "The configurations to be set at cluster level.", + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/ExecuteCommandConfiguration" + } + }, + "type": "object" + }, + "ClusterSettings": { + "additionalProperties": false, + "description": "The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandConfiguration": { + "additionalProperties": false, + "description": "The configuration for ExecuteCommand.", + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "description": "The session logging configuration for ExecuteCommand.", + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectDefaults": { + "additionalProperties": false, + "description": "Service Connect Configuration default for all services or tasks within this cluster", + "properties": { + "Namespace": { + "description": "Service Connect Namespace Name or ARN default for all services or tasks within this cluster", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Create an Elastic Container Service (ECS) cluster.", + "handlers": { + "create": { + "permissions": [ + "ecs:CreateCluster", + "ecs:DescribeClusters", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteCluster", + "ecs:DescribeClusters" + ] + }, + "list": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:ListClusters" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeClusters" + ] + }, + "update": { + "permissions": [ + "ecs:PutAccountSettingDefault", + "ecs:DescribeClusters", + "ecs:TagResource", + "ecs:UntagResource", + "ecs:PutAccountSetting", + "ecs:ListTagsForResource", + "ecs:UpdateCluster", + "ecs:UpdateClusterSettings", + "ecs:PutClusterCapacityProviders" + ] + } + }, + "primaryIdentifier": [ + "/properties/ClusterName" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Amazon ECS cluster, such as arn:aws:ecs:us-east-2:123456789012:cluster/MyECSCluster.", + "type": "string" + }, + "CapacityProviders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterName": { + "description": "A user-generated string that you use to identify your cluster. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name.", + "type": "string" + }, + "ClusterSettings": { + "items": { + "$ref": "#/definitions/ClusterSettings" + }, + "type": "array" + }, + "Configuration": { + "$ref": "#/definitions/ClusterConfiguration" + }, + "DefaultCapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "ServiceConnectDefaults": { + "$ref": "#/definitions/ServiceConnectDefaults" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::ECS::Cluster", + "writeOnlyProperties": [ + "/properties/ServiceConnectDefaults" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-taskset.json new file mode 100644 index 0000000000..4dd38f7ef4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ecs-taskset.json @@ -0,0 +1,215 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "description": "The VPC subnets and security groups associated with a task. All specified subnets and security groups must be from the same VPC.", + "properties": { + "AssignPublicIp": { + "description": "Whether the task's elastic network interface receives a public IP address. The default value is DISABLED.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "description": "The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. There is a limit of 5 security groups that can be specified per AwsVpcConfiguration.", + "items": { + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "description": "The subnets associated with the task or service. There is a limit of 16 subnets that can be specified per AwsVpcConfiguration.", + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "description": "A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer. ", + "properties": { + "ContainerName": { + "description": "The name of the container (as it appears in a container definition) to associate with the load balancer.", + "type": "string" + }, + "ContainerPort": { + "description": "The port on the container to associate with the load balancer. This port must correspond to a containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they are launched on must allow ingress traffic on the hostPort of the port mapping.", + "type": "integer" + }, + "TargetGroupArn": { + "description": "The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set. A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you are using a Classic Load Balancer this should be omitted. For services using the ECS deployment controller, you can specify one or multiple target groups. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html in the Amazon Elastic Container Service Developer Guide. For services using the CODE_DEPLOY deployment controller, you are required to define two target groups for the load balancer. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html in the Amazon Elastic Container Service Developer Guide. If your service's task definition uses the awsvpc network mode (which is required for the Fargate launch type), you must choose ip as the target type, not instance, when creating your target groups because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.", + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "description": "An object representing the network configuration for a task or service.", + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "description": "The unit of measure for the scale value.", + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "description": "The value, specified as a percent total of a service's desiredCount, to scale the task set. Accepted values are numbers between 0 and 100.", + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "description": "The container name value, already specified in the task definition, to be used for your service discovery service. If the task definition that your service task specifies uses the bridge or host network mode, you must specify a containerName and containerPort combination from the task definition. If the task definition that your service task specifies uses the awsvpc network mode and a type SRV DNS record is used, you must specify either a containerName and containerPort combination or a port value, but not both.", + "type": "string" + }, + "ContainerPort": { + "description": "The port value, already specified in the task definition, to be used for your service discovery service. If the task definition your service task specifies uses the bridge or host network mode, you must specify a containerName and containerPort combination from the task definition. If the task definition your service task specifies uses the awsvpc network mode and a type SRV DNS record is used, you must specify either a containerName and containerPort combination or a port value, but not both.", + "type": "integer" + }, + "Port": { + "description": "The port value used if your service discovery service specified an SRV record. This field may be used if both the awsvpc network mode and SRV records are used.", + "type": "integer" + }, + "RegistryArn": { + "description": "The Amazon Resource Name (ARN) of the service registry. The currently supported service registry is AWS Cloud Map. For more information, see https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.htmlin the Amazon Elastic Container Service Developer Guide.", + "handlers": { + "create": { + "permissions": [ + "ecs:CreateTaskSet", + "ecs:DescribeTaskSets" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteTaskSet", + "ecs:DescribeTaskSets" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeTaskSets" + ] + }, + "update": { + "permissions": [ + "ecs:UpdateTaskSet", + "ecs:DescribeTaskSets" + ] + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "description": "The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.", + "type": "string" + }, + "ExternalId": { + "description": "An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute set to the provided value. ", + "type": "string" + }, + "Id": { + "description": "The ID of the task set.", + "type": "string" + }, + "LaunchType": { + "description": "The launch type that new tasks in the task set will use. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html in the Amazon Elastic Container Service Developer Guide. ", + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "description": "The platform version that the tasks in the task set should use. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used by default.", + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale", + "description": "A floating-point percentage of the desired number of tasks to place and keep running in the task set." + }, + "Service": { + "description": "The short name or full Amazon Resource Name (ARN) of the service to create the task set in.", + "type": "string" + }, + "ServiceRegistries": { + "description": "The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.", + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "TaskDefinition": { + "description": "The short name or full Amazon Resource Name (ARN) of the task definition for the tasks in the task set to use.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticache-subnetgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticache-subnetgroup.json new file mode 100644 index 0000000000..80ce070829 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticache-subnetgroup.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CacheSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElastiCache::SubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::ElastiCache::SubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-application.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-application.json new file mode 100644 index 0000000000..b613aba6c6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-application.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName" + ], + "definitions": { + "ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/MaxCountRule" + } + }, + "type": "object" + }, + "MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "integer" + } + }, + "type": "object" + }, + "MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Application", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/ApplicationResourceLifecycleConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ElasticBeanstalk::Application" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-applicationversion.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-applicationversion.json new file mode 100644 index 0000000000..1b3a2845a4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-applicationversion.json @@ -0,0 +1,51 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/SourceBundle" + ], + "definitions": { + "SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/SourceBundle" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "SourceBundle" + ], + "typeName": "AWS::ElasticBeanstalk::ApplicationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-configurationtemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-configurationtemplate.json new file mode 100644 index 0000000000..bd1a025e3f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-configurationtemplate.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PlatformArn", + "/properties/ApplicationName", + "/properties/SolutionStackName", + "/properties/EnvironmentId", + "/properties/SourceConfiguration" + ], + "definitions": { + "ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/ConfigurationOptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/SourceConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::ConfigurationTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-environment.json new file mode 100644 index 0000000000..ad67522d06 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticbeanstalk-environment.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CNAMEPrefix", + "/properties/EnvironmentName", + "/properties/ApplicationName", + "/properties/SolutionStackName" + ], + "definitions": { + "OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Environment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EndpointURL": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OperationsRole": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/OptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/EndpointURL" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::Environment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-listenerrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-listenerrule.json new file mode 100644 index 0000000000..0afd31c630 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-listenerrule.json @@ -0,0 +1,386 @@ +{ + "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": { + "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": { + "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" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "required": [ + "TokenEndpoint", + "Issuer", + "ClientSecret", + "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" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerRule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": true + }, + "Conditions": { + "items": { + "$ref": "#/definitions/RuleCondition" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "ListenerArn": { + "type": "string" + }, + "Priority": { + "maximum": 50000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ListenerArn", + "Actions", + "Priority", + "Conditions" + ], + "typeName": "AWS::ElasticLoadBalancingV2::ListenerRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..48793c4fbd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,184 @@ +{ + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::LoadBalancer", + "oneOf": [ + { + "properties": { + "Subnets": false + }, + "required": [ + "SubnetMappings" + ], + "type": "object" + }, + { + "properties": { + "SubnetMappings": false + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['SubnetMappings', 'Subnets']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/CanonicalHostedZoneID", + "/properties/Id", + "/properties/LoadBalancerFullName", + "/properties/DNSName" + ], + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-targetgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-targetgroup.json new file mode 100644 index 0000000000..e903c7f545 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-elasticloadbalancingv2-targetgroup.json @@ -0,0 +1,175 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetType", + "/properties/ProtocolVersion", + "/properties/Port", + "/properties/Name", + "/properties/VpcId", + "/properties/Protocol", + "/properties/IpAddressType" + ], + "definitions": { + "Matcher": { + "additionalProperties": false, + "properties": { + "GrpcCode": { + "type": "string" + }, + "HttpCode": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetDescription": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "Id": { + "type": "string" + }, + "Port": { + "type": "integer" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "TargetGroupAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::TargetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HealthCheckEnabled": { + "type": "boolean" + }, + "HealthCheckIntervalSeconds": { + "maximum": 300, + "minimum": 5, + "type": "integer" + }, + "HealthCheckPath": { + "type": "string" + }, + "HealthCheckPort": { + "type": "string" + }, + "HealthCheckProtocol": { + "type": "string" + }, + "HealthCheckTimeoutSeconds": { + "type": "integer" + }, + "HealthyThresholdCount": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Matcher": { + "$ref": "#/definitions/Matcher" + }, + "Name": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "Protocol": { + "type": "string" + }, + "ProtocolVersion": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetGroupAttributes": { + "items": { + "$ref": "#/definitions/TargetGroupAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "TargetGroupFullName": { + "type": "string" + }, + "TargetGroupName": { + "type": "string" + }, + "TargetType": { + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/TargetDescription" + }, + "type": "array", + "uniqueItems": true + }, + "UnhealthyThresholdCount": { + "maximum": 10, + "minimum": 2, + "type": "integer" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerArns", + "/properties/Id", + "/properties/TargetGroupName", + "/properties/TargetGroupFullName" + ], + "typeName": "AWS::ElasticLoadBalancingV2::TargetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-emr-securityconfiguration.json new file mode 100644 index 0000000000..1f55dfd600 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-emr-securityconfiguration.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/SecurityConfiguration" + ], + "description": "Resource Type definition for AWS::EMR::SecurityConfiguration", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecurityConfiguration" + ], + "typeName": "AWS::EMR::SecurityConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-alias.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-alias.json new file mode 100644 index 0000000000..a786ab0606 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-alias.json @@ -0,0 +1,49 @@ +{ + "additionalProperties": false, + "definitions": { + "RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Alias", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/RoutingStrategy" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RoutingStrategy", + "Name" + ], + "typeName": "AWS::GameLift::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-build.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-build.json new file mode 100644 index 0000000000..0d69550edf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-build.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StorageLocation", + "/properties/OperatingSystem" + ], + "definitions": { + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Build", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OperatingSystem": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/S3Location" + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::GameLift::Build" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-fleet.json new file mode 100644 index 0000000000..75d4906f55 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gamelift-fleet.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PeerVpcAwsAccountId", + "/properties/BuildId", + "/properties/EC2InstanceType", + "/properties/ServerLaunchParameters", + "/properties/CertificateConfiguration", + "/properties/LogPaths", + "/properties/ServerLaunchPath", + "/properties/FleetType", + "/properties/ScriptId", + "/properties/PeerVpcId", + "/properties/InstanceRoleARN" + ], + "definitions": { + "CertificateConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateType": { + "type": "string" + } + }, + "required": [ + "CertificateType" + ], + "type": "object" + }, + "IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "IpRange", + "FromPort", + "ToPort", + "Protocol" + ], + "type": "object" + }, + "ResourceCreationLimitPolicy": { + "additionalProperties": false, + "properties": { + "NewGameSessionsPerCreator": { + "type": "integer" + }, + "PolicyPeriodInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "RuntimeConfiguration": { + "additionalProperties": false, + "properties": { + "GameSessionActivationTimeoutSeconds": { + "type": "integer" + }, + "MaxConcurrentGameSessionActivations": { + "type": "integer" + }, + "ServerProcesses": { + "items": { + "$ref": "#/definitions/ServerProcess" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ServerProcess": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutions": { + "type": "integer" + }, + "LaunchPath": { + "type": "string" + }, + "Parameters": { + "type": "string" + } + }, + "required": [ + "ConcurrentExecutions", + "LaunchPath" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Fleet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BuildId": { + "type": "string" + }, + "CertificateConfiguration": { + "$ref": "#/definitions/CertificateConfiguration" + }, + "Description": { + "type": "string" + }, + "DesiredEC2Instances": { + "type": "integer" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/IpPermission" + }, + "type": "array", + "uniqueItems": true + }, + "EC2InstanceType": { + "cfnRegionSchema": "aws_gamelift_fleet/ec2instancetype_enum", + "type": "string" + }, + "FleetType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceRoleARN": { + "type": "string" + }, + "LogPaths": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MaxSize": { + "type": "integer" + }, + "MetricGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MinSize": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "NewGameSessionProtectionPolicy": { + "type": "string" + }, + "PeerVpcAwsAccountId": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "ResourceCreationLimitPolicy": { + "$ref": "#/definitions/ResourceCreationLimitPolicy" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/RuntimeConfiguration" + }, + "ScriptId": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EC2InstanceType", + "Name" + ], + "typeName": "AWS::GameLift::Fleet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gammadilithium-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gammadilithium-jobdefinition.json new file mode 100644 index 0000000000..c7cb4e84eb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gammadilithium-jobdefinition.json @@ -0,0 +1,748 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tags", + "/properties/JobDefinitionName" + ], + "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Environment": { + "items": { + "$ref": "#/definitions/Environment" + }, + "type": "array", + "uniqueItems": false + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Memory": { + "type": "integer" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/MountPoints" + }, + "type": "array", + "uniqueItems": false + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/ResourceRequirement" + }, + "type": "array", + "uniqueItems": false + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/Ulimit" + }, + "type": "array", + "uniqueItems": false + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "integer" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/Volumes" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Env": { + "items": { + "$ref": "#/definitions/EksContainerEnvironmentVariable" + }, + "type": "array", + "uniqueItems": false + }, + "Image": { + "type": "string" + }, + "ImagePullPolicy": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Resources": { + "$ref": "#/definitions/EksContainerResourceRequirements" + }, + "SecurityContext": { + "$ref": "#/definitions/EksContainerSecurityContext" + }, + "VolumeMounts": { + "items": { + "$ref": "#/definitions/EksContainerVolumeMount" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "EksContainerEnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "EksContainerResourceRequirements": { + "additionalProperties": false, + "properties": { + "Limits": { + "type": "object" + }, + "Requests": { + "type": "object" + } + }, + "type": "object" + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "properties": { + "Privileged": { + "type": "boolean" + }, + "ReadOnlyRootFilesystem": { + "type": "boolean" + }, + "RunAsGroup": { + "type": "integer" + }, + "RunAsNonRoot": { + "type": "boolean" + }, + "RunAsUser": { + "type": "integer" + } + }, + "type": "object" + }, + "EksContainerVolumeMount": { + "additionalProperties": false, + "properties": { + "MountPath": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "EksEmptyDir": { + "additionalProperties": false, + "properties": { + "Medium": { + "type": "string" + }, + "SizeLimit": { + "type": "string" + } + }, + "type": "object" + }, + "EksHostPath": { + "additionalProperties": false, + "properties": { + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/PodProperties" + } + }, + "type": "object" + }, + "EksSecret": { + "additionalProperties": false, + "properties": { + "Optional": { + "type": "boolean" + }, + "SecretName": { + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "EksVolume": { + "additionalProperties": false, + "properties": { + "EmptyDir": { + "$ref": "#/definitions/EksEmptyDir" + }, + "HostPath": { + "$ref": "#/definitions/EksHostPath" + }, + "Name": { + "type": "string" + }, + "Secret": { + "$ref": "#/definitions/EksSecret" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Environment": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EphemeralStorage": { + "additionalProperties": false, + "properties": { + "SizeInGiB": { + "type": "integer" + } + }, + "required": [ + "SizeInGiB" + ], + "type": "object" + }, + "EvaluateOnExit": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "OnExitCode": { + "type": "string" + }, + "OnReason": { + "type": "string" + }, + "OnStatusReason": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "type": "object" + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "type": "object" + } + }, + "type": "object" + }, + "MountPoints": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + } + }, + "type": "object" + }, + "NodeProperties": { + "additionalProperties": false, + "properties": { + "MainNode": { + "type": "integer" + }, + "NodeRangeProperties": { + "items": { + "$ref": "#/definitions/NodeRangeProperty" + }, + "type": "array", + "uniqueItems": false + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/ContainerProperties" + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "ResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "RetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "integer" + }, + "EvaluateOnExit": { + "items": { + "$ref": "#/definitions/EvaluateOnExit" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, + "Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "ValueFrom", + "Name" + ], + "type": "object" + }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Size": { + "type": "integer" + } + }, + "required": [ + "Size", + "ContainerPath" + ], + "type": "object" + }, + "Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "integer" + } + }, + "required": [ + "SoftLimit", + "HardLimit", + "Name" + ], + "type": "object" + }, + "Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GammaDilithium::JobDefinition", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Id": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "Parameters": { + "type": "object" + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "SchedulingPriority": { + "type": "integer" + }, + "Tags": { + "type": "object" + }, + "Timeout": { + "$ref": "#/definitions/Timeout" + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::GammaDilithium::JobDefinition" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-customentitytype.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-customentitytype.json new file mode 100644 index 0000000000..ef28326ab8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-customentitytype.json @@ -0,0 +1,32 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::Glue::CustomEntityType", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContextWords": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RegexString": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::Glue::CustomEntityType" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-datacatalogencryptionsettings.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-datacatalogencryptionsettings.json new file mode 100644 index 0000000000..94664d2615 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-glue-datacatalogencryptionsettings.json @@ -0,0 +1,67 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "ConnectionPasswordEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "ReturnConnectionPasswordEncrypted": { + "type": "boolean" + } + }, + "type": "object" + }, + "DataCatalogEncryptionSettings": { + "additionalProperties": false, + "properties": { + "ConnectionPasswordEncryption": { + "$ref": "#/definitions/ConnectionPasswordEncryption" + }, + "EncryptionAtRest": { + "$ref": "#/definitions/EncryptionAtRest" + } + }, + "type": "object" + }, + "EncryptionAtRest": { + "additionalProperties": false, + "properties": { + "CatalogEncryptionMode": { + "type": "string" + }, + "SseAwsKmsKeyId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Glue::DataCatalogEncryptionSettings", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DataCatalogEncryptionSettings": { + "$ref": "#/definitions/DataCatalogEncryptionSettings" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DataCatalogEncryptionSettings", + "CatalogId" + ], + "typeName": "AWS::Glue::DataCatalogEncryptionSettings" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-filter.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-filter.json new file mode 100644 index 0000000000..4b5c0ffde4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-filter.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DetectorId", + "/properties/Name" + ], + "definitions": { + "Condition": { + "additionalProperties": false, + "properties": { + "Eq": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Equals": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "GreaterThan": { + "format": "int64", + "type": "integer" + }, + "GreaterThanOrEqual": { + "format": "int64", + "type": "integer" + }, + "Gt": { + "type": "integer" + }, + "Gte": { + "type": "integer" + }, + "LessThan": { + "format": "int64", + "type": "integer" + }, + "LessThanOrEqual": { + "format": "int64", + "type": "integer" + }, + "Lt": { + "type": "integer" + }, + "Lte": { + "type": "integer" + }, + "Neq": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "NotEquals": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "FindingCriteria": { + "additionalProperties": false, + "properties": { + "Criterion": { + "additionalProperties": false, + "patternProperties": { + "^.+$": { + "$ref": "#/definitions/Condition" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "TagItem": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GuardDuty::Filter", + "handlers": { + "create": { + "permissions": [ + "guardduty:CreateFilter", + "guardduty:GetFilter", + "guardduty:TagResource" + ] + }, + "delete": { + "permissions": [ + "guardduty:ListDetectors", + "guardduty:ListFilters", + "guardduty:GetFilter", + "guardduty:DeleteFilter" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DetectorId": { + "type": "string" + } + } + }, + "permissions": [ + "guardduty:ListFilters" + ] + }, + "read": { + "permissions": [ + "guardduty:GetFilter" + ] + }, + "update": { + "permissions": [ + "guardduty:UpdateFilter", + "guardduty:GetFilter", + "guardduty:ListFilters" + ] + } + }, + "primaryIdentifier": [ + "/properties/DetectorId", + "/properties/Name" + ], + "properties": { + "Action": { + "enum": [ + "NOOP", + "ARCHIVE" + ], + "type": "string" + }, + "Description": { + "type": "string" + }, + "DetectorId": { + "maxLength": 300, + "minLength": 1, + "type": "string" + }, + "FindingCriteria": { + "$ref": "#/definitions/FindingCriteria" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Rank": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagItem" + }, + "type": "array" + } + }, + "required": [ + "FindingCriteria" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::GuardDuty::Filter" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-master.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-master.json new file mode 100644 index 0000000000..977bb485c7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-master.json @@ -0,0 +1,73 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/MasterId", + "/properties/InvitationId", + "/properties/DetectorId" + ], + "description": "GuardDuty Master resource schema", + "handlers": { + "create": { + "permissions": [ + "guardduty:ListInvitations", + "guardduty:AcceptInvitation", + "guardduty:GetMasterAccount" + ] + }, + "delete": { + "permissions": [ + "guardduty:DisassociateFromMasterAccount" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DetectorId": { + "type": "string" + }, + "MasterId": { + "type": "string" + } + } + }, + "permissions": [ + "guardduty:GetMasterAccount" + ] + }, + "read": { + "permissions": [ + "guardduty:GetMasterAccount" + ] + } + }, + "primaryIdentifier": [ + "/properties/DetectorId", + "/properties/MasterId" + ], + "properties": { + "DetectorId": { + "description": "Unique ID of the detector of the GuardDuty member account.", + "type": "string" + }, + "InvitationId": { + "description": "Value used to validate the master account to the member account.", + "type": "string" + }, + "MasterId": { + "description": "ID of the account used as the master account.", + "type": "string" + } + }, + "required": [ + "MasterId", + "DetectorId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-guardduty.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::GuardDuty::Master" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-member.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-member.json new file mode 100644 index 0000000000..0373888c6c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-guardduty-member.json @@ -0,0 +1,97 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DetectorId", + "/properties/MemberId" + ], + "description": "Resource Type definition for AWS::GuardDuty::Member", + "handlers": { + "create": { + "permissions": [ + "guardduty:CreateMembers", + "guardduty:GetMembers" + ] + }, + "delete": { + "permissions": [ + "guardduty:GetMembers", + "guardduty:DisassociateMembers", + "guardduty:DeleteMembers" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DetectorId": { + "type": "string" + } + } + }, + "permissions": [ + "guardduty:ListMembers" + ] + }, + "read": { + "permissions": [ + "guardduty:GetMembers" + ] + }, + "update": { + "permissions": [ + "guardduty:GetMembers", + "guardduty:CreateMembers", + "guardduty:DisassociateMembers", + "guardduty:StartMonitoringMembers", + "guardduty:StopMonitoringMembers", + "guardduty:InviteMembers" + ] + } + }, + "primaryIdentifier": [ + "/properties/DetectorId", + "/properties/MemberId" + ], + "properties": { + "DetectorId": { + "type": "string" + }, + "DisableEmailNotification": { + "type": "boolean" + }, + "Email": { + "type": "string" + }, + "MemberId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Status": { + "enum": [ + "Created", + "Disabled", + "Enabled", + "Invited", + "Removed", + "Resigned" + ], + "type": "string" + } + }, + "required": [ + "Email" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-guardduty", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::GuardDuty::Member", + "writeOnlyProperties": [ + "/properties/DisableEmailNotification", + "/properties/Message" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-accesskey.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-accesskey.json new file mode 100644 index 0000000000..eaf023abb9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-accesskey.json @@ -0,0 +1,40 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Serial", + "/properties/UserName" + ], + "description": "Resource Type definition for AWS::IAM::AccessKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretAccessKey": { + "type": "string" + }, + "Serial": { + "type": "integer" + }, + "Status": { + "enum": [ + "Active", + "Inactive" + ], + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecretAccessKey" + ], + "required": [ + "UserName" + ], + "typeName": "AWS::IAM::AccessKey" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-instanceprofile.json new file mode 100644 index 0000000000..a0ff933e37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-instanceprofile.json @@ -0,0 +1,43 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceProfileName", + "/properties/Path" + ], + "description": "Resource Type definition for AWS::IAM::InstanceProfile", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceProfileName": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Roles": { + "items": { + "pattern": "[a-zA-Z0-9+=,.@\\-_]+", + "type": "string" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Roles" + ], + "typeName": "AWS::IAM::InstanceProfile" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-certificate.json new file mode 100644 index 0000000000..1fdf158dd4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-certificate.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateSigningRequest" + ], + "description": "Resource Type definition for AWS::IoT::Certificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "CertificateSigningRequest": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Status", + "CertificateSigningRequest" + ], + "typeName": "AWS::IoT::Certificate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json new file mode 100644 index 0000000000..36682f62a0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyDocument", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::Policy", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "PolicyDocument" + ], + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policyprincipalattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policyprincipalattachment.json new file mode 100644 index 0000000000..1e5d6a7348 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policyprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyName", + "Principal" + ], + "typeName": "AWS::IoT::PolicyPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-thing.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-thing.json new file mode 100644 index 0000000000..8bcc352f41 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-thing.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ThingName" + ], + "definitions": { + "AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IoT::Thing", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AttributePayload" + }, + "Id": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::IoT::Thing" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-gcmchannel.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-thingprincipalattachment.json similarity index 53% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-gcmchannel.json rename to src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-thingprincipalattachment.json index f193b096ad..e527a23e87 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-gcmchannel.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-thingprincipalattachment.json @@ -1,23 +1,21 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/ApplicationId" + "/properties/Principal", + "/properties/ThingName" ], - "description": "Resource Type definition for AWS::Pinpoint::GCMChannel", + "description": "Resource Type definition for AWS::IoT::ThingPrincipalAttachment", "primaryIdentifier": [ "/properties/Id" ], "properties": { - "ApiKey": { + "Id": { "type": "string" }, - "ApplicationId": { + "Principal": { "type": "string" }, - "Enabled": { - "type": "boolean" - }, - "Id": { + "ThingName": { "type": "string" } }, @@ -25,8 +23,8 @@ "/properties/Id" ], "required": [ - "ApiKey", - "ApplicationId" + "ThingName", + "Principal" ], - "typeName": "AWS::Pinpoint::GCMChannel" + "typeName": "AWS::IoT::ThingPrincipalAttachment" } diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-topicrule.json similarity index 63% rename from src/cfnlint/data/schemas/providers/us_gov_west_1/aws-iot-topicrule.json rename to src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-topicrule.json index 9b9f199097..406a4e7eae 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-topicrule.json @@ -10,9 +10,6 @@ "CloudwatchAlarm": { "$ref": "#/definitions/CloudwatchAlarmAction" }, - "CloudwatchLogs": { - "$ref": "#/definitions/CloudwatchLogsAction" - }, "CloudwatchMetric": { "$ref": "#/definitions/CloudwatchMetricAction" }, @@ -40,21 +37,12 @@ "IotSiteWise": { "$ref": "#/definitions/IotSiteWiseAction" }, - "Kafka": { - "$ref": "#/definitions/KafkaAction" - }, "Kinesis": { "$ref": "#/definitions/KinesisAction" }, "Lambda": { "$ref": "#/definitions/LambdaAction" }, - "Location": { - "$ref": "#/definitions/LocationAction" - }, - "OpenSearch": { - "$ref": "#/definitions/OpenSearchAction" - }, "Republish": { "$ref": "#/definitions/RepublishAction" }, @@ -69,9 +57,6 @@ }, "StepFunctions": { "$ref": "#/definitions/StepFunctionsAction" - }, - "Timestream": { - "$ref": "#/definitions/TimestreamAction" } }, "type": "object" @@ -128,19 +113,6 @@ }, "type": "object" }, - "CannedAccessControlList": { - "enum": [ - "private", - "public-read", - "public-read-write", - "aws-exec-read", - "authenticated-read", - "bucket-owner-read", - "bucket-owner-full-control", - "log-delivery-write" - ], - "type": "string" - }, "CloudwatchAlarmAction": { "additionalProperties": false, "properties": { @@ -165,22 +137,6 @@ ], "type": "object" }, - "CloudwatchLogsAction": { - "additionalProperties": false, - "properties": { - "LogGroupName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "LogGroupName", - "RoleArn" - ], - "type": "object" - }, "CloudwatchMetricAction": { "additionalProperties": false, "properties": { @@ -294,9 +250,6 @@ "FirehoseAction": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" - }, "DeliveryStreamName": { "type": "string" }, @@ -366,9 +319,6 @@ "IotAnalyticsAction": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" - }, "ChannelName": { "type": "string" }, @@ -385,9 +335,6 @@ "IotEventsAction": { "additionalProperties": false, "properties": { - "BatchMode": { - "type": "boolean" - }, "InputName": { "type": "string" }, @@ -424,39 +371,6 @@ ], "type": "object" }, - "KafkaAction": { - "additionalProperties": false, - "properties": { - "ClientProperties": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "type": "string" - } - }, - "type": "object" - }, - "DestinationArn": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Partition": { - "type": "string" - }, - "Topic": { - "type": "string" - } - }, - "required": [ - "DestinationArn", - "Topic", - "ClientProperties" - ], - "type": "object" - }, "KinesisAction": { "additionalProperties": false, "properties": { @@ -485,65 +399,6 @@ }, "type": "object" }, - "LocationAction": { - "additionalProperties": false, - "properties": { - "DeviceId": { - "type": "string" - }, - "Latitude": { - "type": "string" - }, - "Longitude": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Timestamp": { - "$ref": "#/definitions/Timestamp" - }, - "TrackerName": { - "type": "string" - } - }, - "required": [ - "RoleArn", - "TrackerName", - "DeviceId", - "Latitude", - "Longitude" - ], - "type": "object" - }, - "OpenSearchAction": { - "additionalProperties": false, - "properties": { - "Endpoint": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Index": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "Type": { - "type": "string" - } - }, - "required": [ - "Type", - "Endpoint", - "Index", - "Id", - "RoleArn" - ], - "type": "object" - }, "PutAssetPropertyValueEntry": { "additionalProperties": false, "properties": { @@ -587,9 +442,6 @@ "RepublishAction": { "additionalProperties": false, "properties": { - "Headers": { - "$ref": "#/definitions/RepublishActionHeaders" - }, "Qos": { "type": "integer" }, @@ -606,52 +458,12 @@ ], "type": "object" }, - "RepublishActionHeaders": { - "additionalProperties": false, - "properties": { - "ContentType": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "CorrelationData": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "MessageExpiry": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "PayloadFormatIndicator": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "ResponseTopic": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "UserProperties": { - "$ref": "#/definitions/UserProperties" - } - }, - "type": "object" - }, - "RoleArn": { - "type": "string" - }, "S3Action": { "additionalProperties": false, "properties": { "BucketName": { "type": "string" }, - "CannedAcl": { - "$ref": "#/definitions/CannedAccessControlList" - }, "Key": { "type": "string" }, @@ -743,104 +555,6 @@ ], "type": "object" }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "Timestamp": { - "additionalProperties": false, - "properties": { - "Unit": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value" - ], - "type": "object" - }, - "TimestreamAction": { - "additionalProperties": false, - "properties": { - "DatabaseName": { - "type": "string" - }, - "Dimensions": { - "$ref": "#/definitions/TimestreamDimensionsList" - }, - "RoleArn": { - "type": "string" - }, - "TableName": { - "type": "string" - }, - "Timestamp": { - "$ref": "#/definitions/TimestreamTimestamp" - } - }, - "required": [ - "RoleArn", - "DatabaseName", - "TableName", - "Dimensions" - ], - "type": "object" - }, - "TimestreamDimension": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Name", - "Value" - ], - "type": "object" - }, - "TimestreamDimensionsList": { - "items": { - "$ref": "#/definitions/TimestreamDimension" - }, - "maxItems": 128, - "minItems": 1, - "type": "array" - }, - "TimestreamTimestamp": { - "additionalProperties": false, - "properties": { - "Unit": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Unit" - ], - "type": "object" - }, "TopicRulePayload": { "additionalProperties": false, "properties": { @@ -848,7 +562,8 @@ "items": { "$ref": "#/definitions/Action" }, - "type": "array" + "type": "array", + "uniqueItems": true }, "AwsIotSqlVersion": { "type": "string" @@ -867,101 +582,37 @@ } }, "required": [ + "RuleDisabled", "Actions", "Sql" ], "type": "object" - }, - "UserProperties": { - "items": { - "$ref": "#/definitions/UserProperty" - }, - "maxItems": 100, - "minItems": 1, - "type": "array" - }, - "UserProperty": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "Value": { - "maxLength": 1024, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" } }, "description": "Resource Type definition for AWS::IoT::TopicRule", - "handlers": { - "create": { - "permissions": [ - "iam:PassRole", - "iot:CreateTopicRule", - "iot:GetTopicRule" - ] - }, - "delete": { - "permissions": [ - "iot:GetTopicRule", - "iot:DeleteTopicRule" - ] - }, - "list": { - "permissions": [ - "iot:ListTopicRules" - ] - }, - "read": { - "permissions": [ - "iot:GetTopicRule", - "iot:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iot:ReplaceTopicRule", - "iot:ListTagsForResource", - "iot:TagResource", - "iot:UntagResource" - ] - } - }, "primaryIdentifier": [ - "/properties/RuleName" + "/properties/Id" ], "properties": { "Arn": { "type": "string" }, - "RuleName": { + "Id": { "type": "string" }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" + "RuleName": { + "type": "string" }, "TopicRulePayload": { "$ref": "#/definitions/TopicRulePayload" } }, "readOnlyProperties": [ + "/properties/Id", "/properties/Arn" ], "required": [ "TopicRulePayload" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "typeName": "AWS::IoT::TopicRule" } diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesis-streamconsumer.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesis-streamconsumer.json new file mode 100644 index 0000000000..3507f8a448 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-kinesis-streamconsumer.json @@ -0,0 +1,42 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StreamARN", + "/properties/ConsumerName" + ], + "description": "Resource Type definition for AWS::Kinesis::StreamConsumer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ConsumerARN": { + "type": "string" + }, + "ConsumerCreationTimestamp": { + "type": "string" + }, + "ConsumerName": { + "type": "string" + }, + "ConsumerStatus": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StreamARN": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ConsumerStatus", + "/properties/Id", + "/properties/ConsumerARN", + "/properties/ConsumerCreationTimestamp" + ], + "required": [ + "ConsumerName", + "StreamARN" + ], + "typeName": "AWS::Kinesis::StreamConsumer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-alias.json new file mode 100644 index 0000000000..9c2fbb105b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-alias.json @@ -0,0 +1,22 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::Lambda::Alias", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BarName": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "BarName" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-permission.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-permission.json new file mode 100644 index 0000000000..f3d98e2735 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-permission.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceAccount", + "/properties/FunctionUrlAuthType", + "/properties/SourceArn", + "/properties/Principal", + "/properties/Action", + "/properties/FunctionName", + "/properties/EventSourceToken", + "/properties/PrincipalOrgID" + ], + "description": "Resource Type definition for AWS::Lambda::Permission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Action": { + "type": "string" + }, + "EventSourceToken": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionUrlAuthType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "PrincipalOrgID": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "Action", + "Principal" + ], + "typeName": "AWS::Lambda::Permission" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-instance.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-instance.json new file mode 100644 index 0000000000..bb049a1011 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-instance.json @@ -0,0 +1,299 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tenancy", + "/properties/VirtualizationType", + "/properties/TimeBasedAutoScaling", + "/properties/RootDeviceType", + "/properties/AutoScalingType", + "/properties/StackId", + "/properties/AvailabilityZone", + "/properties/SubnetId", + "/properties/BlockDeviceMappings", + "/properties/EbsOptimized" + ], + "definitions": { + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "TimeBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "Friday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Monday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Saturday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Sunday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Thursday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Tuesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Wednesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Instance", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "AmiId": { + "type": "string" + }, + "Architecture": { + "type": "string" + }, + "AutoScalingType": { + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticIps": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Hostname": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "LayerIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Os": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateIp": { + "type": "string" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RootDeviceType": { + "type": "string" + }, + "SshKeyName": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tenancy": { + "type": "string" + }, + "TimeBasedAutoScaling": { + "$ref": "#/definitions/TimeBasedAutoScaling" + }, + "VirtualizationType": { + "type": "string" + }, + "Volumes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/PublicIp", + "/properties/Id", + "/properties/PublicDnsName", + "/properties/PrivateDnsName", + "/properties/PrivateIp" + ], + "required": [ + "LayerIds", + "InstanceType", + "StackId" + ], + "typeName": "AWS::OpsWorks::Instance" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-layer.json new file mode 100644 index 0000000000..0c7549d975 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-layer.json @@ -0,0 +1,262 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StackId", + "/properties/Type" + ], + "definitions": { + "AutoScalingThresholds": { + "additionalProperties": false, + "properties": { + "CpuThreshold": { + "type": "number" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "InstanceCount": { + "type": "integer" + }, + "LoadThreshold": { + "type": "number" + }, + "MemoryThreshold": { + "type": "number" + }, + "ThresholdsWaitTime": { + "type": "integer" + } + }, + "type": "object" + }, + "LifecycleEventConfiguration": { + "additionalProperties": false, + "properties": { + "ShutdownEventConfiguration": { + "$ref": "#/definitions/ShutdownEventConfiguration" + } + }, + "type": "object" + }, + "LoadBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "DownScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + }, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + } + }, + "type": "object" + }, + "Recipes": { + "additionalProperties": false, + "properties": { + "Configure": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Deploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Setup": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Shutdown": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Undeploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ShutdownEventConfiguration": { + "additionalProperties": false, + "properties": { + "DelayUntilElbConnectionsDrained": { + "type": "boolean" + }, + "ExecutionTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "MountPoint": { + "type": "string" + }, + "NumberOfDisks": { + "type": "integer" + }, + "RaidLevel": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Layer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomInstanceProfileArn": { + "type": "string" + }, + "CustomJson": { + "type": "object" + }, + "CustomRecipes": { + "$ref": "#/definitions/Recipes" + }, + "CustomSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "$ref": "#/definitions/LifecycleEventConfiguration" + }, + "LoadBasedAutoScaling": { + "$ref": "#/definitions/LoadBasedAutoScaling" + }, + "Name": { + "type": "string" + }, + "Packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Shortname": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/VolumeConfiguration" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EnableAutoHealing", + "Type", + "AutoAssignElasticIps", + "Shortname", + "AutoAssignPublicIps", + "Name", + "StackId" + ], + "typeName": "AWS::OpsWorks::Layer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-stack.json new file mode 100644 index 0000000000..f3862f3e29 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-stack.json @@ -0,0 +1,230 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CloneAppIds", + "/properties/ClonePermissions", + "/properties/ServiceRoleArn", + "/properties/VpcId", + "/properties/SourceStackId" + ], + "definitions": { + "ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "RdsDbInstanceArn", + "DbUser" + ], + "type": "object" + }, + "Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "VpcId": [ + "DefaultSubnetId" + ] + }, + "description": "Resource Type definition for AWS::OpsWorks::Stack", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/ElasticIp" + }, + "type": "array", + "uniqueItems": true + }, + "HostnameTheme": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/RdsDbInstance" + }, + "type": "array", + "uniqueItems": true + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DefaultInstanceProfileArn", + "ServiceRoleArn", + "Name" + ], + "typeName": "AWS::OpsWorks::Stack" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", + "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", + "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", + "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", + "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/OptionGroupName": "$lowercase(OptionGroupName)", + "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", + "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/Endpoint/HostedZoneId", + "/properties/DbiResourceId", + "/properties/DBInstanceArn", + "/properties/DBSystemId", + "/properties/MasterUserSecret/SecretArn", + "/properties/CertificateDetails/CAIdentifier", + "/properties/CertificateDetails/ValidTill" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::RDS::DBInstance", + "writeOnlyProperties": [ + "/properties/AllowMajorVersionUpgrade", + "/properties/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-redshift-cluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-redshift-cluster.json new file mode 100644 index 0000000000..370f799510 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-redshift-cluster.json @@ -0,0 +1,195 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/MasterUsername", + "/properties/OwnerAccount", + "/properties/SnapshotIdentifier", + "/properties/Encrypted", + "/properties/Port", + "/properties/DBName", + "/properties/SnapshotClusterIdentifier", + "/properties/AvailabilityZone", + "/properties/ClusterSubnetGroupName", + "/properties/ClusterIdentifier", + "/properties/ElasticIp" + ], + "definitions": { + "LoggingProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllowVersionUpgrade": { + "type": "boolean" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "AvailabilityZone": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterParameterGroupName": { + "type": "string" + }, + "ClusterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ClusterSubnetGroupName": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "ClusterVersion": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "ElasticIp": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Endpoint": { + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "EndpointAddress": { + "type": "string" + }, + "EndpointPort": { + "type": "string" + }, + "HsmClientCertificateIdentifier": { + "type": "string" + }, + "HsmConfigurationIdentifier": { + "type": "string" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/LoggingProperties" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "NodeType": { + "cfnRegionSchema": "aws_redshift_cluster/nodetype_enum", + "type": "string" + }, + "NumberOfNodes": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "OwnerAccount": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Endpoint/Port", + "/properties/Endpoint/Address" + ], + "required": [ + "MasterUserPassword", + "NodeType", + "MasterUsername", + "DBName", + "ClusterType" + ], + "typeName": "AWS::Redshift::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-redshift-clusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-redshift-clusterparametergroup.json new file mode 100644 index 0000000000..d05a398a2c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-redshift-clusterparametergroup.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ParameterGroupFamily", + "/properties/Description" + ], + "definitions": { + "Parameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterParameterGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ParameterGroupFamily": { + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/Parameter" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "ParameterGroupFamily" + ], + "typeName": "AWS::Redshift::ClusterParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-redshift-clustersubnetgroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-redshift-clustersubnetgroup.json new file mode 100644 index 0000000000..855e1344e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-redshift-clustersubnetgroup.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterSubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::Redshift::ClusterSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53-healthcheck.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53-healthcheck.json new file mode 100644 index 0000000000..aae9580ade --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53-healthcheck.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "definitions": { + "AlarmIdentifier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region", + "Name" + ], + "type": "object" + }, + "HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "$ref": "#/definitions/AlarmIdentifier" + }, + "ChildHealthChecks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableSNI": { + "type": "boolean" + }, + "FailureThreshold": { + "type": "integer" + }, + "FullyQualifiedDomainName": { + "type": "string" + }, + "HealthThreshold": { + "type": "integer" + }, + "IPAddress": { + "type": "string" + }, + "InsufficientDataHealthStatus": { + "type": "string" + }, + "Inverted": { + "type": "boolean" + }, + "MeasureLatency": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RequestInterval": { + "type": "integer" + }, + "ResourcePath": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "HealthCheckTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HealthCheck", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HealthCheckConfig": { + "$ref": "#/definitions/HealthCheckConfig", + "cfnSchema": [ + "aws_route53_healthcheck/healthcheckconfig_type_inclusive" + ] + }, + "HealthCheckTags": { + "items": { + "$ref": "#/definitions/HealthCheckTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "HealthCheckConfig" + ], + "typeName": "AWS::Route53::HealthCheck" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4f589ca0c9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53-hostedzone.json @@ -0,0 +1,108 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "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": [ + "VPCRegion", + "VPCId" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HostedZone", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "required": [ + "Name" + ], + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53resolver-resolverrule.json new file mode 100644 index 0000000000..953bf586fb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53resolver-resolverrule.json @@ -0,0 +1,90 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleType", + "/properties/DomainName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53Resolver::ResolverRule", + "primaryIdentifier": [ + "/properties/ResolverRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResolverEndpointId": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "RuleType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetIps": { + "items": { + "$ref": "#/definitions/TargetAddress" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ResolverRuleId", + "/properties/Arn" + ], + "required": [ + "DomainName", + "RuleType" + ], + "typeName": "AWS::Route53Resolver::ResolverRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53resolver-resolverruleassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53resolver-resolverruleassociation.json new file mode 100644 index 0000000000..6b514ce0da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-route53resolver-resolverruleassociation.json @@ -0,0 +1,34 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/VPCId", + "/properties/ResolverRuleId" + ], + "description": "Resource Type definition for AWS::Route53Resolver::ResolverRuleAssociation", + "primaryIdentifier": [ + "/properties/ResolverRuleAssociationId" + ], + "properties": { + "Name": { + "type": "string" + }, + "ResolverRuleAssociationId": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "VPCId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ResolverRuleAssociationId" + ], + "required": [ + "VPCId", + "ResolverRuleId" + ], + "typeName": "AWS::Route53Resolver::ResolverRuleAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-secretsmanager-secrettargetattachment.json new file mode 100644 index 0000000000..ace966c437 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-secretsmanager-secrettargetattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretId": { + "type": "string" + }, + "TargetId": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecretId", + "TargetType", + "TargetId" + ], + "typeName": "AWS::SecretsManager::SecretTargetAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-acceptedportfolioshare.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-acceptedportfolioshare.json new file mode 100644 index 0000000000..767e95ecfd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-acceptedportfolioshare.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId" + ], + "typeName": "AWS::ServiceCatalog::AcceptedPortfolioShare" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-portfolio.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-portfolio.json new file mode 100644 index 0000000000..79797255b4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-portfolio.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ServiceCatalog::Portfolio", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioName": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/PortfolioName" + ], + "required": [ + "ProviderName", + "DisplayName" + ], + "typeName": "AWS::ServiceCatalog::Portfolio" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-portfolioprincipalassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-portfolioprincipalassociation.json new file mode 100644 index 0000000000..2ae9e8819b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-portfolioprincipalassociation.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId", + "/properties/PrincipalARN", + "/properties/PrincipalType" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "PrincipalARN": { + "type": "string" + }, + "PrincipalType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PrincipalARN", + "PortfolioId", + "PrincipalType" + ], + "typeName": "AWS::ServiceCatalog::PortfolioPrincipalAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-portfolioproductassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-portfolioproductassociation.json new file mode 100644 index 0000000000..ba9090e0f3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-portfolioproductassociation.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/SourcePortfolioId", + "/properties/PortfolioId", + "/properties/ProductId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "SourcePortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId", + "ProductId" + ], + "typeName": "AWS::ServiceCatalog::PortfolioProductAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-tagoptionassociation.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-tagoptionassociation.json new file mode 100644 index 0000000000..6ab91b4165 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-servicecatalog-tagoptionassociation.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceId", + "/properties/TagOptionId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "TagOptionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TagOptionId", + "ResourceId" + ], + "typeName": "AWS::ServiceCatalog::TagOptionAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-activity.json new file mode 100644 index 0000000000..15981c2a5c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-stepfunctions-activity.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for Activity", + "handlers": { + "create": { + "permissions": [ + "states:CreateActivity", + "states:TagResource" + ] + }, + "delete": { + "permissions": [ + "states:DescribeActivity", + "states:DeleteActivity" + ] + }, + "list": { + "permissions": [ + "states:ListActivities" + ] + }, + "read": { + "permissions": [ + "states:DescribeActivity", + "states:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "states:ListTagsForResource", + "states:TagResource", + "states:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagsEntry" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::StepFunctions::Activity" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-ipset.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-ipset.json new file mode 100644 index 0000000000..198879fe09 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-ipset.json @@ -0,0 +1,50 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "IPSetDescriptor": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::IPSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "IPSetDescriptors": { + "items": { + "$ref": "#/definitions/IPSetDescriptor" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "typeName": "AWS::WAF::IPSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-rule.json new file mode 100644 index 0000000000..5ae8e6b6b7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-rule.json @@ -0,0 +1,68 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "enum": [ + "IPMatch", + "ByteMatch", + "SqlInjectionMatch", + "GeoMatch", + "SizeConstraint", + "XssMatch", + "RegexMatch" + ], + "type": "string" + } + }, + "required": [ + "Type", + "DataId", + "Negated" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::Rule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/Predicate" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "Name" + ], + "typeName": "AWS::WAF::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-sizeconstraintset.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-sizeconstraintset.json new file mode 100644 index 0000000000..cc2fdb3cd9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-sizeconstraintset.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "type": "integer" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "Size", + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::SizeConstraintSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/SizeConstraint" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SizeConstraints", + "Name" + ], + "typeName": "AWS::WAF::SizeConstraintSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-webacl.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-webacl.json new file mode 100644 index 0000000000..d95f27d59b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-webacl.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "ActivatedRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/WafAction" + }, + "Priority": { + "type": "integer" + }, + "RuleId": { + "type": "string" + } + }, + "required": [ + "Priority", + "RuleId" + ], + "type": "object" + }, + "WafAction": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::WebACL", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DefaultAction": { + "$ref": "#/definitions/WafAction" + }, + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ActivatedRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "DefaultAction", + "Name" + ], + "typeName": "AWS::WAF::WebACL" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-xssmatchset.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-xssmatchset.json new file mode 100644 index 0000000000..a7cd951419 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-waf-xssmatchset.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::XssMatchSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/XssMatchTuple" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "XssMatchTuples", + "Name" + ], + "typeName": "AWS::WAF::XssMatchSet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-wafv2-rulegroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-wafv2-rulegroup.json new file mode 100644 index 0000000000..bb49988200 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-wafv2-rulegroup.json @@ -0,0 +1,1426 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Count traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the RuleGroup", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the RuleGroup.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelSummary": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP", + "CUSTOM_KEYS" + ], + "type": "string" + }, + "CustomKeys": { + "description": "Specifies the aggregate keys to use in a rate-base rule.", + "items": { + "$ref": "#/definitions/RateBasedStatementCustomKey" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateBasedStatementCustomKey": { + "additionalProperties": false, + "description": "Specifies a single custom aggregate key for a rate-base rule.", + "properties": { + "Cookie": { + "$ref": "#/definitions/RateLimitCookie" + }, + "ForwardedIP": { + "$ref": "#/definitions/RateLimitForwardedIP" + }, + "HTTPMethod": { + "$ref": "#/definitions/RateLimitHTTPMethod" + }, + "Header": { + "$ref": "#/definitions/RateLimitHeader" + }, + "IP": { + "$ref": "#/definitions/RateLimitIP" + }, + "LabelNamespace": { + "$ref": "#/definitions/RateLimitLabelNamespace" + }, + "QueryArgument": { + "$ref": "#/definitions/RateLimitQueryArgument" + }, + "QueryString": { + "$ref": "#/definitions/RateLimitQueryString" + }, + "UriPath": { + "$ref": "#/definitions/RateLimitUriPath" + } + }, + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RateLimitCookie": { + "additionalProperties": false, + "description": "Specifies a cookie as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the cookie to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitForwardedIP": { + "description": "Specifies the first IP address in an HTTP header as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitHTTPMethod": { + "description": "Specifies the request's HTTP method as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitHeader": { + "additionalProperties": false, + "description": "Specifies a header as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the header to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitIP": { + "description": "Specifies the IP address in the web request as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitLabelNamespace": { + "additionalProperties": false, + "description": "Specifies a label namespace to use as an aggregate key for a rate-based rule.", + "properties": { + "Namespace": { + "description": "The namespace to use for aggregation.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + } + }, + "required": [ + "Namespace" + ], + "type": "object" + }, + "RateLimitQueryArgument": { + "additionalProperties": false, + "description": "Specifies a query argument in the request as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the query argument to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitQueryString": { + "additionalProperties": false, + "description": "Specifies the request's query string as an aggregate key for a rate-based rule.", + "properties": { + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "TextTransformations" + ], + "type": "object" + }, + "RateLimitUriPath": { + "additionalProperties": false, + "description": "Specifies the request's URI Path as an aggregate key for a rate-based rule.", + "properties": { + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "TextTransformations" + ], + "type": "object" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of RuleGroup that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront RuleGroup, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the RuleGroup.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a RuleGroup, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a RuleGroup, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the RuleGroup with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a RuleGroup, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteRuleGroup", + "wafv2:GetRuleGroup" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Scope": { + "$ref": "resource-schema.json#/properties/Scope" + } + }, + "required": [ + "Scope" + ] + }, + "permissions": [ + "wafv2:listRuleGroups" + ] + }, + "read": { + "permissions": [ + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AvailableLabels": { + "description": "Collection of Available Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "ConsumedLabels": { + "description": "Collection of Consumed Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/LabelNamespace", + "/properties/AvailableLabels/*/Name", + "/properties/ConsumedLabels/*/Name" + ], + "required": [ + "Capacity", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::RuleGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-wafv2-webacl.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-wafv2-webacl.json new file mode 100644 index 0000000000..89bdbeebbd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-wafv2-webacl.json @@ -0,0 +1,1961 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AWSManagedRulesACFPRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Account creation fraud prevention managed rule group in the web ACL", + "properties": { + "CreationPath": { + "type": "string" + }, + "EnableRegexInPath": { + "type": "boolean" + }, + "RegistrationPagePath": { + "type": "string" + }, + "RequestInspection": { + "$ref": "#/definitions/RequestInspectionACFP" + }, + "ResponseInspection": { + "$ref": "#/definitions/ResponseInspection" + } + }, + "required": [ + "CreationPath", + "RegistrationPagePath", + "RequestInspection" + ], + "type": "object" + }, + "AWSManagedRulesATPRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Account Takeover Prevention managed rule group in the web ACL", + "properties": { + "EnableRegexInPath": { + "type": "boolean" + }, + "LoginPath": { + "type": "string" + }, + "RequestInspection": { + "$ref": "#/definitions/RequestInspection" + }, + "ResponseInspection": { + "$ref": "#/definitions/ResponseInspection" + } + }, + "required": [ + "LoginPath" + ], + "type": "object" + }, + "AWSManagedRulesBotControlRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Bot Control managed rule group in the web ACL", + "properties": { + "InspectionLevel": { + "enum": [ + "COMMON", + "TARGETED" + ], + "type": "string" + } + }, + "required": [ + "InspectionLevel" + ], + "type": "object" + }, + "AddressField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AssociationConfig": { + "additionalProperties": false, + "description": "AssociationConfig for body inspection", + "properties": { + "RequestBody": { + "$ref": "#/definitions/RequestBody" + } + }, + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "DefaultAction": { + "additionalProperties": false, + "description": "Default Action WebACL will take against ingress traffic when there is no matching Rule.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + } + }, + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the WebACL", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the WebACL.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "ExcludedRule": { + "additionalProperties": false, + "description": "Excluded Rule in the RuleGroup or ManagedRuleGroup will not be evaluated.", + "properties": { + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "FieldIdentifier": { + "additionalProperties": false, + "properties": { + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "Identifier" + ], + "type": "object" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "ManagedRuleGroupConfig": { + "additionalProperties": false, + "description": "ManagedRuleGroupConfig.", + "properties": { + "AWSManagedRulesACFPRuleSet": { + "$ref": "#/definitions/AWSManagedRulesACFPRuleSet" + }, + "AWSManagedRulesATPRuleSet": { + "$ref": "#/definitions/AWSManagedRulesATPRuleSet" + }, + "AWSManagedRulesBotControlRuleSet": { + "$ref": "#/definitions/AWSManagedRulesBotControlRuleSet" + }, + "LoginPath": { + "maxLength": 256, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "type": "object" + }, + "ManagedRuleGroupStatement": { + "additionalProperties": false, + "properties": { + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "ManagedRuleGroupConfigs": { + "description": "Collection of ManagedRuleGroupConfig.", + "items": { + "$ref": "#/definitions/ManagedRuleGroupConfig" + }, + "type": "array" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + }, + "VendorName": { + "type": "string" + }, + "Version": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[\\w#:\\.\\-/]+$", + "type": "string" + } + }, + "required": [ + "VendorName", + "Name" + ], + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OverrideAction": { + "additionalProperties": false, + "description": "Override a RuleGroup or ManagedRuleGroup behavior. This can only be applied to Rule that has RuleGroupReferenceStatement or ManagedRuleGroupReferenceStatement.", + "properties": { + "Count": { + "description": "Count traffic towards application.", + "type": "object" + }, + "None": { + "description": "Keep the RuleGroup or ManagedRuleGroup behavior as is.", + "type": "object" + } + }, + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PhoneNumberField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "QueryString": { + "type": "object" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP", + "CUSTOM_KEYS" + ], + "type": "string" + }, + "CustomKeys": { + "description": "Specifies the aggregate keys to use in a rate-base rule.", + "items": { + "$ref": "#/definitions/RateBasedStatementCustomKey" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateBasedStatementCustomKey": { + "additionalProperties": false, + "description": "Specifies a single custom aggregate key for a rate-base rule.", + "properties": { + "Cookie": { + "$ref": "#/definitions/RateLimitCookie" + }, + "ForwardedIP": { + "$ref": "#/definitions/RateLimitForwardedIP" + }, + "HTTPMethod": { + "$ref": "#/definitions/RateLimitHTTPMethod" + }, + "Header": { + "$ref": "#/definitions/RateLimitHeader" + }, + "IP": { + "$ref": "#/definitions/RateLimitIP" + }, + "LabelNamespace": { + "$ref": "#/definitions/RateLimitLabelNamespace" + }, + "QueryArgument": { + "$ref": "#/definitions/RateLimitQueryArgument" + }, + "QueryString": { + "$ref": "#/definitions/RateLimitQueryString" + }, + "UriPath": { + "$ref": "#/definitions/RateLimitUriPath" + } + }, + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RateLimitCookie": { + "additionalProperties": false, + "description": "Specifies a cookie as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the cookie to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitForwardedIP": { + "description": "Specifies the first IP address in an HTTP header as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitHTTPMethod": { + "description": "Specifies the request's HTTP method as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitHeader": { + "additionalProperties": false, + "description": "Specifies a header as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the header to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitIP": { + "description": "Specifies the IP address in the web request as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitLabelNamespace": { + "additionalProperties": false, + "description": "Specifies a label namespace to use as an aggregate key for a rate-based rule.", + "properties": { + "Namespace": { + "description": "The namespace to use for aggregation.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + } + }, + "required": [ + "Namespace" + ], + "type": "object" + }, + "RateLimitQueryArgument": { + "additionalProperties": false, + "description": "Specifies a query argument in the request as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the query argument to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitQueryString": { + "additionalProperties": false, + "description": "Specifies the request's query string as an aggregate key for a rate-based rule.", + "properties": { + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "TextTransformations" + ], + "type": "object" + }, + "RateLimitUriPath": { + "additionalProperties": false, + "description": "Specifies the request's URI Path as an aggregate key for a rate-based rule.", + "properties": { + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "TextTransformations" + ], + "type": "object" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RequestBody": { + "additionalProperties": false, + "description": "Map of AssociatedResourceType and RequestBodyAssociatedResourceTypeConfig", + "patternProperties": { + "^(CLOUDFRONT)$": { + "$ref": "#/definitions/RequestBodyAssociatedResourceTypeConfig" + } + }, + "type": "object" + }, + "RequestBodyAssociatedResourceTypeConfig": { + "additionalProperties": false, + "description": "Configures the inspection size in the request body.", + "properties": { + "DefaultSizeInspectionLimit": { + "$ref": "#/definitions/SizeInspectionLimit" + } + }, + "required": [ + "DefaultSizeInspectionLimit" + ], + "type": "object" + }, + "RequestInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login requests", + "properties": { + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "PayloadType", + "UsernameField", + "PasswordField" + ], + "type": "object" + }, + "RequestInspectionACFP": { + "additionalProperties": false, + "description": "Configures the inspection of sign-up requests", + "properties": { + "AddressFields": { + "items": { + "$ref": "#/definitions/AddressField" + }, + "type": "array" + }, + "EmailField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "PhoneNumberFields": { + "items": { + "$ref": "#/definitions/PhoneNumberField" + }, + "type": "array" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "PayloadType" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login responses", + "properties": { + "BodyContains": { + "$ref": "#/definitions/ResponseInspectionBodyContains" + }, + "Header": { + "$ref": "#/definitions/ResponseInspectionHeader" + }, + "Json": { + "$ref": "#/definitions/ResponseInspectionJson" + }, + "StatusCode": { + "$ref": "#/definitions/ResponseInspectionStatusCode" + } + }, + "type": "object" + }, + "ResponseInspectionBodyContains": { + "additionalProperties": false, + "description": "Response body contents that indicate success or failure of a login request", + "properties": { + "FailureStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "SuccessStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessStrings", + "FailureStrings" + ], + "type": "object" + }, + "ResponseInspectionHeader": { + "additionalProperties": false, + "description": "Response headers that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 200, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Name", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionJson": { + "additionalProperties": false, + "description": "Response JSON that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Identifier", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionStatusCode": { + "additionalProperties": false, + "description": "Response status codes that indicate success or failure of a login request", + "properties": { + "FailureCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "SuccessCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessCodes", + "FailureCodes" + ], + "type": "object" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of WebACL that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "OverrideAction": { + "$ref": "#/definitions/OverrideAction" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleActionOverride": { + "additionalProperties": false, + "description": "Action override for rules in the rule group.", + "properties": { + "ActionToUse": { + "$ref": "#/definitions/RuleAction" + }, + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name", + "ActionToUse" + ], + "type": "object" + }, + "RuleGroupReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront WebACL, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SizeInspectionLimit": { + "enum": [ + "KB_16", + "KB_32", + "KB_48", + "KB_64" + ], + "type": "string" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "ManagedRuleGroupStatement": { + "$ref": "#/definitions/ManagedRuleGroupStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "RuleGroupReferenceStatement": { + "$ref": "#/definitions/RuleGroupReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "TokenDomains": { + "description": "List of domains to accept in web request tokens, in addition to the domain of the protected resource.", + "items": { + "maxLength": 253, + "minLength": 1, + "pattern": "^[\\w\\.\\-/]+$", + "type": "string" + }, + "type": "array" + }, + "UriPath": { + "type": "object" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the WebACL.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteWebACL", + "wafv2:GetWebACL" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Scope": { + "$ref": "resource-schema.json#/properties/Scope" + } + }, + "required": [ + "Scope" + ] + }, + "permissions": [ + "wafv2:listWebACLs" + ] + }, + "read": { + "permissions": [ + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AssociationConfig": { + "$ref": "#/definitions/AssociationConfig" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "DefaultAction": { + "$ref": "#/definitions/DefaultAction" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "TokenDomains": { + "$ref": "#/definitions/TokenDomains" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Capacity", + "/properties/Id", + "/properties/LabelNamespace" + ], + "required": [ + "DefaultAction", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::WebACL" +} 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 eaa75c3f6c..da3bb57d16 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -104,6 +104,7 @@ "AWS::Macie::CustomDataIdentifier", "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -561,6 +562,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::GameLift::GameSessionQueue", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", @@ -793,6 +795,7 @@ "AWS::WAF::XssMatchSet", "AWS::EC2::VerifiedAccessTrustProvider", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::Pinpoint::EmailTemplate", "AWS::MediaLive::Multiplex", "AWS::Scheduler::ScheduleGroup", @@ -1062,6 +1065,7 @@ "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-transfer-certificate.json", + "aws-pinpoint-gcmchannel.json", "aws-connect-instance.json", "aws-apigateway-documentationpart.json", "aws-cloudwatch-compositealarm.json", @@ -1102,6 +1106,7 @@ "aws-macie-customdataidentifier.json", "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -1142,7 +1147,6 @@ "aws-docdb-dbinstance.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", - "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-appstream-appblockbuilder.json", @@ -1150,6 +1154,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1224,7 +1229,6 @@ "aws-iam-role.json", "aws-workspacesthinclient-environment.json", "aws-dms-endpoint.json", - "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", @@ -1246,6 +1250,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-vpclattice-rule.json", @@ -1267,6 +1272,7 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1433,6 +1439,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1537,11 +1544,11 @@ "aws-emrcontainers-virtualcluster.json", "aws-ec2-securitygroup.json", "aws-quicksight-theme.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-gamelift-gamesessionqueue.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", @@ -1575,6 +1582,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1611,7 +1619,6 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", - "aws-iotsitewise-gateway.json", "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", "aws-sagemaker-workteam.json", @@ -1689,7 +1696,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-ec2-verifiedaccessinstance.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -1766,6 +1772,7 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-connect-user.json index b949608f4f..546e21910e 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-connect-user.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-connect-user.json @@ -6,6 +6,18 @@ "minimum": 0, "type": "integer" }, + "AttributeName": { + "description": "The name of user's proficiency. You must use name of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "description": "The value of user's proficiency. You must use value of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, "AutoAccept": { "description": "The Auto accept setting.", "type": "boolean" @@ -26,6 +38,12 @@ "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", "type": "string" }, + "Level": { + "description": "The level of the proficiency. The valid values are 1, 2, 3, 4 and 5.", + "maximum": 5.0, + "minimum": 1.0, + "type": "number" + }, "Mobile": { "description": "The mobile phone number.", "pattern": "^\\+[1-9]\\d{1,14}$", @@ -115,6 +133,27 @@ "PhoneType" ], "type": "object" + }, + "UserProficiency": { + "additionalProperties": false, + "description": "Proficiency of a user.", + "properties": { + "AttributeName": { + "$ref": "#/definitions/AttributeName" + }, + "AttributeValue": { + "$ref": "#/definitions/AttributeValue" + }, + "Level": { + "$ref": "#/definitions/Level" + } + }, + "required": [ + "AttributeName", + "AttributeValue", + "Level" + ], + "type": "object" } }, "description": "Resource Type definition for AWS::Connect::User", @@ -215,6 +254,14 @@ "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", "type": "string" }, + "UserProficiencies": { + "description": "One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/UserProficiency" + }, + "type": "array" + }, "Username": { "description": "The user name for the account.", "maxLength": 64, diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-image.json deleted file mode 100644 index 223d64e03e..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/Workflows", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 3cf9b2a4a9..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-workflow.json deleted file mode 100644 index 5c25c2361b..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-imagebuilder-workflow.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Version", - "/properties/ChangeDescription", - "/properties/Description", - "/properties/Data", - "/properties/Uri", - "/properties/Type", - "/properties/KmsKeyId", - "/properties/Tags" - ], - "description": "Resource schema for AWS::ImageBuilder::Workflow", - "handlers": { - "create": { - "permissions": [ - "iam:GetRole", - "kms:GenerateDataKey*", - "kms:Encrypt", - "kms:Decrypt", - "s3:GetObject", - "s3:HeadBucket", - "s3:GetBucketLocation", - "imagebuilder:TagResource", - "imagebuilder:GetWorkflow", - "imagebuilder:CreateWorkflow" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:GetWorkflow", - "imagebuilder:UnTagResource", - "imagebuilder:DeleteWorkflow" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Data" - ] - }, - { - "required": [ - "Uri" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the workflow.", - "type": "string" - }, - "ChangeDescription": { - "description": "The change description of the workflow.", - "type": "string" - }, - "Data": { - "description": "The data of the workflow.", - "maxLength": 16000, - "minLength": 1, - "type": "string" - }, - "Description": { - "description": "The description of the workflow.", - "type": "string" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the workflow.", - "type": "string" - }, - "Name": { - "description": "The name of the workflow.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the workflow.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", - "enum": [ - "BUILD", - "TEST", - "DISTRIBUTION" - ], - "type": "string" - }, - "Uri": { - "description": "The uri of the workflow.", - "type": "string" - }, - "Version": { - "description": "The version of the workflow.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Type", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Workflow", - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-iotsitewise-gateway.json new file mode 100644 index 0000000000..2c70369407 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-iotsitewise-gateway.json @@ -0,0 +1,189 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GatewayPlatform" + ], + "definitions": { + "CapabilityConfiguration": { + "description": "The JSON document that defines the gateway capability's configuration.", + "type": "string" + }, + "CapabilityNamespace": { + "description": "The namespace of the capability configuration.", + "type": "string" + }, + "GatewayCapabilitySummary": { + "additionalProperties": false, + "description": "Contains a summary of a gateway capability configuration.", + "properties": { + "CapabilityConfiguration": { + "$ref": "#/definitions/CapabilityConfiguration" + }, + "CapabilityNamespace": { + "$ref": "#/definitions/CapabilityNamespace" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "GatewayPlatform": { + "additionalProperties": false, + "description": "Contains a gateway's platform information.", + "oneOf": [ + { + "required": [ + "Greengrass" + ] + }, + { + "required": [ + "GreengrassV2" + ] + } + ], + "properties": { + "Greengrass": { + "$ref": "#/definitions/Greengrass", + "description": "A gateway that runs on AWS IoT Greengrass V1." + }, + "GreengrassV2": { + "$ref": "#/definitions/GreengrassV2", + "description": "A gateway that runs on AWS IoT Greengrass V2." + } + }, + "type": "object" + }, + "Greengrass": { + "additionalProperties": false, + "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", + "properties": { + "GroupArn": { + "description": "The ARN of the Greengrass group.", + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "GreengrassV2": { + "additionalProperties": false, + "description": "Contains the CoreDeviceThingName of AWS IoT Greengrass Group V2 that the gateway runs on.", + "properties": { + "CoreDeviceThingName": { + "description": "The name of the CoreDevice in GreenGrass V2.", + "type": "string" + } + }, + "required": [ + "CoreDeviceThingName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Gateway", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iam:PassRole", + "iam:GetRole", + "greengrass:GetCoreDevice", + "iot:DescribeThing" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteGateway" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListGateways" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotsitewise:UpdateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:DescribeGateway", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/GatewayId" + ], + "properties": { + "GatewayCapabilitySummaries": { + "description": "A list of gateway capability summaries that each contain a namespace and status.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/GatewayCapabilitySummary" + }, + "type": "array", + "uniqueItems": true + }, + "GatewayId": { + "description": "The ID of the gateway device.", + "type": "string" + }, + "GatewayName": { + "description": "A unique, friendly name for the gateway.", + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/GatewayPlatform", + "description": "The gateway's platform. You can only specify one platform in a gateway." + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the gateway.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/GatewayId" + ], + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Gateway" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-iotsitewise-portal.json new file mode 100644 index 0000000000..1f96697cad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-iotsitewise-portal.json @@ -0,0 +1,155 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/PortalArn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalAuthMode" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Portal", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreatePortal", + "iotsitewise:TagResource", + "iam:PassRole", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeletePortal", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListPortals" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribePortal" + ] + }, + "update": { + "permissions": [ + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", + "iotsitewise:UpdatePortal", + "iotsitewise:UntagResource", + "iam:PassRole", + "sso:GetManagedApplicationInstance", + "sso:UpdateApplicationInstanceDisplayData" + ] + } + }, + "primaryIdentifier": [ + "/properties/PortalId" + ], + "properties": { + "Alarms": { + "additionalProperties": false, + "description": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range.", + "properties": { + "AlarmRoleArn": { + "description": "The ARN of the IAM role that allows the alarm to perform actions and access AWS resources and services, such as AWS IoT Events.", + "type": "string" + }, + "NotificationLambdaArn": { + "description": "The ARN of the AWS Lambda function that manages alarm notifications. For more information, see Managing alarm notifications in the AWS IoT Events Developer Guide.", + "type": "string" + } + }, + "type": "object" + }, + "NotificationSenderEmail": { + "description": "The email address that sends alarm notifications.", + "type": "string" + }, + "PortalArn": { + "description": "The ARN of the portal, which has the following format.", + "type": "string" + }, + "PortalAuthMode": { + "description": "The service to use to authenticate users to the portal. Choose from SSO or IAM. You can't change this value after you create a portal.", + "type": "string" + }, + "PortalClientId": { + "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", + "type": "string" + }, + "PortalContactEmail": { + "description": "The AWS administrator's contact email address.", + "type": "string" + }, + "PortalDescription": { + "description": "A description for the portal.", + "type": "string" + }, + "PortalId": { + "description": "The ID of the portal.", + "type": "string" + }, + "PortalName": { + "description": "A friendly name for the portal.", + "type": "string" + }, + "PortalStartUrl": { + "description": "The public root URL for the AWS IoT AWS IoT SiteWise Monitor application portal.", + "type": "string" + }, + "RoleArn": { + "description": "The ARN of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the portal.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/PortalArn", + "/properties/PortalClientId", + "/properties/PortalId", + "/properties/PortalStartUrl" + ], + "required": [ + "PortalContactEmail", + "PortalName", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotsitewise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Portal", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-iotsitewise-project.json new file mode 100644 index 0000000000..0e457b1491 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-iotsitewise-project.json @@ -0,0 +1,120 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalId" + ], + "definitions": { + "AssetId": { + "description": "The ID of the asset", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Project", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateProject", + "iotsitewise:BatchAssociateProjectAssets" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteProject" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListProjects" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:ListTagsForResource", + "iotsitewise:ListProjectAssets" + ] + }, + "update": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:UpdateProject", + "iotsitewise:BatchAssociateProjectAssets", + "iotsitewise:BatchDisAssociateProjectAssets", + "iotsitewise:ListProjectAssets", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ProjectId" + ], + "properties": { + "AssetIds": { + "description": "The IDs of the assets to be associated to the project.", + "items": { + "$ref": "#/definitions/AssetId" + }, + "type": "array", + "uniqueItems": true + }, + "PortalId": { + "description": "The ID of the portal in which to create the project.", + "type": "string" + }, + "ProjectArn": { + "description": "The ARN of the project.", + "type": "string" + }, + "ProjectDescription": { + "description": "A description for the project.", + "type": "string" + }, + "ProjectId": { + "description": "The ID of the project.", + "type": "string" + }, + "ProjectName": { + "description": "A friendly name for the project.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ProjectId", + "/properties/ProjectArn" + ], + "required": [ + "PortalId", + "ProjectName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Project" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py new file mode 100644 index 0000000000..ebd458bbe9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -0,0 +1,533 @@ +from typing import List + +# pylint: disable=too-many-lines +types = [ + "AWS::CDK::Metadata", + "AWS::CE::AnomalySubscription", + "AWS::ApiGateway::BasePathMapping", + "AWS::ECS::Service", + "AWS::RAM::ResourceShare", + "AWS::DynamoDB::Table", + "AWS::EC2::SecurityGroupEgress", + "AWS::Config::ConfigurationRecorder", + "AWS::CloudFront::ContinuousDeploymentPolicy", + "AWS::ECR::ReplicationConfiguration", + "AWS::AppConfig::ExtensionAssociation", + "AWS::Redshift::ClusterSubnetGroup", + "AWS::RDS::DBInstance", + "AWS::EC2::VPCDHCPOptionsAssociation", + "AWS::ApiGateway::Model", + "AWS::EC2::NetworkAcl", + "AWS::Lambda::EventSourceMapping", + "AWS::Logs::ResourcePolicy", + "AWS::EC2::NetworkAclEntry", + "AWS::ApiGateway::DocumentationPart", + "AWS::CloudWatch::CompositeAlarm", + "AWS::AppConfig::Application", + "AWS::OpsWorks::Stack", + "AWS::GameLift::Fleet", + "AWS::GameLift::Build", + "AWS::ApiGateway::RequestValidator", + "AWS::AutoScaling::WarmPool", + "AWS::ApplicationAutoScaling::ScalableTarget", + "AWS::ApiGateway::DomainName", + "AWS::ECS::PrimaryTaskSet", + "AWS::AutoScaling::AutoScalingGroup", + "AWS::EKS::FargateProfile", + "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", + "AWS::ElastiCache::SecurityGroup", + "AWS::OpsWorks::Layer", + "AWS::KinesisFirehose::DeliveryStream", + "AWS::ImageBuilder::Component", + "AWS::IAM::Group", + "AWS::Organizations::ResourcePolicy", + "AWS::GameLift::Alias", + "AWS::ApiGateway::UsagePlanKey", + "AWS::CloudFront::RealtimeLogConfig", + "AWS::DataSync::LocationHDFS", + "AWS::EC2::VPCEndpointConnectionNotification", + "AWS::CodePipeline::Pipeline", + "AWS::OpsWorks::Instance", + "AWS::ImageBuilder::ImagePipeline", + "AWS::ElasticLoadBalancingV2::ListenerCertificate", + "AWS::Route53Resolver::ResolverRuleAssociation", + "AWS::Synthetics::Canary", + "AWS::SNS::Subscription", + "AWS::EC2::NatGateway", + "AWS::AppConfig::DeploymentStrategy", + "AWS::ImageBuilder::ImageRecipe", + "AWS::ApiGateway::RestApi", + "AWS::OpsWorks::ElasticLoadBalancerAttachment", + "AWS::S3ObjectLambda::AccessPointPolicy", + "AWS::ElastiCache::ReplicationGroup", + "AWS::StepFunctions::StateMachineAlias", + "AWS::Route53::HostedZone", + "AWS::Logs::MetricFilter", + "AWS::Lambda::Function", + "AWS::SNS::Topic", + "AWS::EC2::VPCGatewayAttachment", + "AWS::CloudTrail::Trail", + "AWS::EC2::VPNConnectionRoute", + "AWS::EC2::InternetGateway", + "AWS::EC2::GatewayRouteTableAssociation", + "AWS::SSM::Document", + "AWS::IAM::Role", + "AWS::CloudFront::CloudFrontOriginAccessIdentity", + "AWS::ApiGateway::ApiKey", + "AWS::AutoScaling::LaunchConfiguration", + "AWS::ApiGateway::ClientCertificate", + "AWS::Lambda::Alias", + "AWS::WAF::IPSet", + "AWS::WAF::SizeConstraintSet", + "AWS::AppConfig::Environment", + "AWS::ImageBuilder::Image", + "AWS::ElastiCache::SecurityGroupIngress", + "AWS::CloudWatch::Dashboard", + "AWS::CloudWatch::Alarm", + "AWS::CloudFormation::CustomResource", + "AWS::ElastiCache::ParameterGroup", + "AWS::CodeDeploy::DeploymentGroup", + "AWS::EC2::Route", + "AWS::XRay::ResourcePolicy", + "AWS::ImageBuilder::DistributionConfiguration", + "AWS::CloudFront::PublicKey", + "AWS::RAM::Permission", + "AWS::DataSync::Task", + "AWS::ECS::TaskDefinition", + "AWS::EC2::SpotFleet", + "AWS::IoT::PolicyPrincipalAttachment", + "AWS::S3::Bucket", + "AWS::ServiceDiscovery::HttpNamespace", + "AWS::EMR::SecurityConfiguration", + "AWS::CloudWatch::InsightRule", + "AWS::ApiGateway::UsagePlan", + "AWS::Batch::SchedulingPolicy", + "AWS::IAM::ServerCertificate", + "AWS::Events::EventBus", + "AWS::Organizations::Organization", + "AWS::SSM::MaintenanceWindowTarget", + "AWS::ApiGateway::Authorizer", + "AWS::IAM::Policy", + "AWS::RDS::DBSecurityGroupIngress", + "AWS::EC2::VolumeAttachment", + "AWS::ECS::ClusterCapacityProviderAssociations", + "AWS::AppConfig::ConfigurationProfile", + "AWS::EC2::TransitGateway", + "AWS::EC2::VPCEndpointServicePermissions", + "AWS::SSM::MaintenanceWindowTask", + "AWS::EKS::Cluster", + "AWS::EFS::FileSystem", + "AWS::Logs::QueryDefinition", + "AWS::IAM::InstanceProfile", + "AWS::DataSync::LocationNFS", + "AWS::CertificateManager::Certificate", + "AWS::SDB::Domain", + "AWS::EC2::SubnetRouteTableAssociation", + "AWS::ImageBuilder::ContainerRecipe", + "AWS::Redshift::ClusterSecurityGroupIngress", + "AWS::ElasticLoadBalancingV2::LoadBalancer", + "AWS::OpenSearchService::Domain", + "AWS::ServiceDiscovery::Instance", + "AWS::Elasticsearch::Domain", + "AWS::EC2::NetworkInterfacePermission", + "AWS::ServiceDiscovery::PrivateDnsNamespace", + "AMZN::SDC::Deployment", + "AWS::SecretsManager::ResourcePolicy", + "AWS::Config::ConfigRule", + "AWS::ImageBuilder::Workflow", + "AWS::ECS::TaskSet", + "AWS::EC2::VPC", + "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", + "AWS::DataSync::LocationAzureBlob", + "AWS::Logs::LogStream", + "AWS::Route53::RecordSetGroup", + "AWS::OpsWorks::App", + "AWS::Kinesis::Stream", + "AWS::Batch::JobDefinition", + "AWS::IAM::SAMLProvider", + "AWS::CloudFront::KeyGroup", + "AWS::EC2::NetworkInterfaceAttachment", + "AWS::EC2::TransitGatewayAttachment", + "AWS::CodeDeploy::DeploymentConfig", + "AWS::StepFunctions::StateMachineVersion", + "AWS::EC2::CustomerGateway", + "AWS::IAM::GroupPolicy", + "AWS::WAF::ByteMatchSet", + "AWS::EC2::Host", + "AWS::EC2::RouteTable", + "AWS::DataSync::LocationSMB", + "AWS::SecurityHub::Standard", + "AWS::Redshift::ClusterParameterGroup", + "AWS::Organizations::Policy", + "AWS::EC2::VPCPeeringConnection", + "AWS::SNS::TopicPolicy", + "AWS::KMS::Key", + "AWS::EC2::Subnet", + "AWS::S3ObjectLambda::AccessPoint", + "AWS::WAF::Rule", + "AWS::ElasticBeanstalk::ConfigurationTemplate", + "AWS::SQS::QueuePolicy", + "AWS::ApiGateway::Account", + "AWS::EC2::SecurityGroup", + "AWS::OpsWorks::Volume", + "AWS::IAM::UserToGroupAddition", + "AWS::Events::Rule", + "AWS::EC2::VPNGatewayRoutePropagation", + "AWS::CloudFront::Function", + "AWS::ApiGateway::Method", + "AWS::SSM::PatchBaseline", + "AWS::ServiceDiscovery::Service", + "AWS::CloudFront::MonitoringSubscription", + "AWS::EFS::MountTarget", + "AWS::EC2::VPNConnection", + "AWS::WAF::WebACL", + "AWS::ServiceDiscovery::PublicDnsNamespace", + "AWS::IAM::User", + "AWS::EMR::InstanceGroupConfig", + "AWS::StepFunctions::Activity", + "AWS::S3::BucketPolicy", + "AWS::Redshift::Cluster", + "AWS::EMR::InstanceFleetConfig", + "AWS::EMR::Cluster", + "AWS::RDS::DBCluster", + "AWS::CloudFront::Distribution", + "AWS::ElastiCache::SubnetGroup", + "AWS::XRay::Group", + "AWS::Oam::Link", + "AWS::KMS::ReplicaKey", + "AWS::Redshift::ClusterSecurityGroup", + "AWS::ECR::PullThroughCacheRule", + "AWS::AppConfig::HostedConfigurationVersion", + "AWS::ApiGateway::Resource", + "AWS::ElasticLoadBalancingV2::TargetGroup", + "AWS::ApplicationAutoScaling::ScalingPolicy", + "AWS::CloudFormation::Macro", + "AWS::Lambda::LayerVersionPermission", + "AWS::SecretsManager::Secret", + "AWS::Route53Resolver::ResolverConfig", + "AWS::Logs::SubscriptionFilter", + "AWS::CodeDeploy::Application", + "AWS::IoT::TopicRule", + "AWS::DataSync::LocationS3", + "AWS::AutoScaling::LifecycleHook", + "AWS::EC2::NetworkInterface", + "AWS::Lambda::LayerVersion", + "AWS::RDS::OptionGroup", + "AWS::OpsWorks::UserProfile", + "AWS::IoT::Policy", + "AWS::SSM::MaintenanceWindow", + "AWS::ImageBuilder::InfrastructureConfiguration", + "AWS::CloudFormation::WaitCondition", + "AWS::Route53Resolver::ResolverEndpoint", + "AWS::CloudWatch::AnomalyDetector", + "AWS::EC2::SubnetNetworkAclAssociation", + "AWS::IAM::UserPolicy", + "AWS::CloudFront::OriginAccessControl", + "AWS::SecretsManager::RotationSchedule", + "AWS::Lambda::Permission", + "AWS::EKS::IdentityProviderConfig", + "AWS::EC2::EgressOnlyInternetGateway", + "AWS::EC2::VPCCidrBlock", + "AWS::AutoScaling::ScheduledAction", + "AWS::DirectoryService::SimpleAD", + "AWS::EC2::VPCEndpoint", + "AWS::RDS::EventSubscription", + "AWS::DataSync::Agent", + "AWS::Logs::LogGroup", + "AWS::ECS::Cluster", + "AWS::EC2::PlacementGroup", + "AWS::Organizations::Account", + "AWS::ECR::Repository", + "AWS::AppConfig::Extension", + "AWS::ElasticLoadBalancingV2::ListenerRule", + "AWS::EC2::KeyPair", + "AWS::EC2::EIPAssociation", + "AWS::ElasticBeanstalk::Application", + "AWS::IoT::ThingPrincipalAttachment", + "AWS::EC2::CapacityReservation", + "AWS::ElasticLoadBalancing::LoadBalancer", + "AWS::IAM::RolePolicy", + "AWS::StepFunctions::StateMachine", + "AWS::RDS::DBClusterParameterGroup", + "AWS::WAF::XssMatchSet", + "AWS::EC2::PrefixList", + "AWS::EC2::Instance", + "AWS::EC2::SubnetCidrBlock", + "AWS::ElasticBeanstalk::ApplicationVersion", + "AWS::WAF::SqlInjectionMatchSet", + "AWS::EC2::TransitGatewayVpcAttachment", + "AWS::EC2::FlowLog", + "AWS::EMR::Step", + "AWS::SSM::Association", + "AWS::CloudFront::ResponseHeadersPolicy", + "AWS::SecurityHub::AutomationRule", + "AWS::KMS::Alias", + "AWS::XRay::SamplingRule", + "AWS::Route53Resolver::ResolverRule", + "AWS::ApiGateway::DocumentationVersion", + "AWS::Oam::Sink", + "AWS::ApiGateway::GatewayResponse", + "AWS::WorkSpaces::Workspace", + "AWS::DirectoryService::MicrosoftAD", + "AWS::DataSync::LocationObjectStorage", + "AWS::ECS::CapacityProvider", + "AWS::ElastiCache::CacheCluster", + "AWS::Logs::Destination", + "AWS::EKS::Nodegroup", + "AWS::Organizations::OrganizationalUnit", + "AWS::SQS::Queue", + "AWS::EC2::SecurityGroupIngress", + "AWS::ApiGateway::Stage", + "AWS::Batch::ComputeEnvironment", + "AWS::DataPipeline::Pipeline", + "AWS::IoT::Thing", + "AWS::Route53::HealthCheck", + "AWS::Events::EventBusPolicy", + "AWS::ApiGateway::Deployment", + "AWS::AutoScaling::ScalingPolicy", + "AWS::ECR::RegistryPolicy", + "AWS::RDS::DBSecurityGroup", + "AWS::SSM::Parameter", + "AWS::Config::DeliveryChannel", + "AWS::IAM::OIDCProvider", + "AWS::CE::AnomalyMonitor", + "AWS::EC2::VPNGateway", + "AWS::CloudFormation::Stack", + "AWS::ResourceGroups::Group", + "AWS::CloudFormation::ResourceDefaultVersion", + "AWS::SSM::ResourceDataSync", + "AWS::CloudFront::CachePolicy", + "AWS::IAM::AccessKey", + "AWS::RDS::DBSubnetGroup", + "AWS::SecretsManager::SecretTargetAttachment", + "AWS::AppConfig::Deployment", + "AWS::CodePipeline::CustomActionType", + "AWS::AccessAnalyzer::Analyzer", + "AWS::EC2::EC2Fleet", + "AWS::EC2::VPCEndpointService", + "AWS::IAM::ManagedPolicy", + "AWS::EC2::LaunchTemplate", + "AWS::CloudFront::OriginRequestPolicy", + "AWS::ElasticBeanstalk::Environment", + "AWS::Lambda::Version", + "AWS::EC2::DHCPOptions", + "AWS::Kinesis::StreamConsumer", + "AWS::IAM::ServiceLinkedRole", + "AWS::EC2::Volume", + "AWS::IoT::Certificate", + "AWS::EC2::EIP", + "AWS::CloudFormation::ResourceVersion", + "AWS::RDS::DBParameterGroup", + "AWS::SecurityHub::Hub", + "AWS::S3::AccessPoint", + "AWS::Batch::JobQueue", + "AWS::ElasticLoadBalancingV2::Listener", + "AWS::CloudFormation::WaitConditionHandle", + "AWS::EKS::Addon", +] + +# pylint: disable=too-many-lines +cached: List[str] = [ + "aws-ce-anomalysubscription.json", + "aws-ecs-service.json", + "aws-ram-resourceshare.json", + "aws-dynamodb-table.json", + "aws-ec2-securitygroupegress.json", + "aws-config-configurationrecorder.json", + "aws-cloudfront-continuousdeploymentpolicy.json", + "aws-ecr-replicationconfiguration.json", + "aws-appconfig-extensionassociation.json", + "aws-ec2-networkacl.json", + "aws-logs-resourcepolicy.json", + "aws-cloudwatch-compositealarm.json", + "aws-autoscaling-warmpool.json", + "aws-ecs-primarytaskset.json", + "aws-eks-fargateprofile.json", + "aws-route53-recordset.json", + "aws-eks-accessentry.json", + "aws-elasticache-securitygroup.json", + "aws-kinesisfirehose-deliverystream.json", + "aws-imagebuilder-component.json", + "aws-organizations-resourcepolicy.json", + "aws-cloudfront-realtimelogconfig.json", + "aws-datasync-locationhdfs.json", + "aws-ec2-vpcendpointconnectionnotification.json", + "aws-codepipeline-pipeline.json", + "aws-imagebuilder-imagepipeline.json", + "aws-elasticloadbalancingv2-listenercertificate.json", + "aws-route53resolver-resolverruleassociation.json", + "aws-sns-subscription.json", + "aws-ec2-natgateway.json", + "aws-appconfig-deploymentstrategy.json", + "aws-imagebuilder-imagerecipe.json", + "aws-opsworks-elasticloadbalancerattachment.json", + "aws-s3objectlambda-accesspointpolicy.json", + "aws-elasticache-replicationgroup.json", + "aws-stepfunctions-statemachinealias.json", + "aws-logs-metricfilter.json", + "aws-lambda-function.json", + "aws-sns-topic.json", + "aws-cloudtrail-trail.json", + "aws-ec2-gatewayroutetableassociation.json", + "aws-cloudfront-cloudfrontoriginaccessidentity.json", + "aws-lambda-alias.json", + "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", + "aws-elasticache-securitygroupingress.json", + "aws-cloudwatch-dashboard.json", + "aws-cloudformation-customresource.json", + "aws-elasticache-parametergroup.json", + "aws-codedeploy-deploymentgroup.json", + "aws-ec2-route.json", + "aws-xray-resourcepolicy.json", + "aws-imagebuilder-distributionconfiguration.json", + "aws-cloudfront-publickey.json", + "aws-ram-permission.json", + "aws-datasync-task.json", + "aws-ecs-taskdefinition.json", + "aws-ec2-spotfleet.json", + "aws-s3-bucket.json", + "aws-servicediscovery-httpnamespace.json", + "aws-cloudwatch-insightrule.json", + "aws-batch-schedulingpolicy.json", + "aws-iam-servercertificate.json", + "aws-organizations-organization.json", + "aws-ssm-maintenancewindowtarget.json", + "aws-rds-dbsecuritygroupingress.json", + "aws-ecs-clustercapacityproviderassociations.json", + "aws-ec2-transitgateway.json", + "aws-ec2-vpcendpointservicepermissions.json", + "aws-ssm-maintenancewindowtask.json", + "aws-eks-cluster.json", + "aws-logs-querydefinition.json", + "aws-datasync-locationnfs.json", + "aws-certificatemanager-certificate.json", + "aws-sdb-domain.json", + "aws-ec2-subnetroutetableassociation.json", + "aws-imagebuilder-containerrecipe.json", + "aws-redshift-clustersecuritygroupingress.json", + "aws-opensearchservice-domain.json", + "aws-servicediscovery-instance.json", + "aws-elasticsearch-domain.json", + "aws-servicediscovery-privatednsnamespace.json", + "aws-secretsmanager-resourcepolicy.json", + "aws-imagebuilder-workflow.json", + "aws-ecs-taskset.json", + "aws-ec2-vpc.json", + "aws-arczonalshift-zonalautoshiftconfiguration.json", + "aws-datasync-locationazureblob.json", + "aws-logs-logstream.json", + "aws-route53-recordsetgroup.json", + "aws-opsworks-app.json", + "aws-kinesis-stream.json", + "aws-batch-jobdefinition.json", + "aws-iam-samlprovider.json", + "aws-cloudfront-keygroup.json", + "aws-stepfunctions-statemachineversion.json", + "aws-iam-grouppolicy.json", + "aws-waf-bytematchset.json", + "aws-ec2-routetable.json", + "aws-datasync-locationsmb.json", + "aws-securityhub-standard.json", + "aws-organizations-policy.json", + "aws-ec2-vpcpeeringconnection.json", + "aws-kms-key.json", + "aws-s3objectlambda-accesspoint.json", + "aws-ec2-securitygroup.json", + "aws-opsworks-volume.json", + "aws-iam-usertogroupaddition.json", + "aws-cloudfront-function.json", + "aws-servicediscovery-service.json", + "aws-cloudfront-monitoringsubscription.json", + "aws-servicediscovery-publicdnsnamespace.json", + "aws-emr-instancegroupconfig.json", + "aws-s3-bucketpolicy.json", + "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", + "aws-cloudfront-distribution.json", + "aws-xray-group.json", + "aws-oam-link.json", + "aws-kms-replicakey.json", + "aws-redshift-clustersecuritygroup.json", + "aws-ecr-pullthroughcacherule.json", + "aws-appconfig-hostedconfigurationversion.json", + "aws-elasticloadbalancingv2-targetgroup.json", + "aws-cloudformation-macro.json", + "aws-lambda-layerversionpermission.json", + "aws-route53resolver-resolverconfig.json", + "aws-logs-subscriptionfilter.json", + "aws-datasync-locations3.json", + "aws-lambda-layerversion.json", + "aws-opsworks-userprofile.json", + "aws-ssm-maintenancewindow.json", + "aws-imagebuilder-infrastructureconfiguration.json", + "aws-route53resolver-resolverendpoint.json", + "aws-cloudwatch-anomalydetector.json", + "aws-iam-userpolicy.json", + "aws-cloudfront-originaccesscontrol.json", + "aws-secretsmanager-rotationschedule.json", + "aws-lambda-permission.json", + "aws-eks-identityproviderconfig.json", + "aws-ec2-vpccidrblock.json", + "aws-datasync-agent.json", + "aws-logs-loggroup.json", + "aws-ecs-cluster.json", + "aws-organizations-account.json", + "aws-ecr-repository.json", + "aws-appconfig-extension.json", + "aws-elasticloadbalancingv2-listenerrule.json", + "aws-ec2-keypair.json", + "aws-ec2-capacityreservation.json", + "aws-elasticloadbalancing-loadbalancer.json", + "aws-iam-rolepolicy.json", + "aws-stepfunctions-statemachine.json", + "aws-ec2-prefixlist.json", + "aws-ec2-instance.json", + "aws-waf-sqlinjectionmatchset.json", + "aws-ec2-transitgatewayvpcattachment.json", + "aws-ec2-flowlog.json", + "aws-ssm-association.json", + "aws-cloudfront-responseheaderspolicy.json", + "aws-securityhub-automationrule.json", + "aws-kms-alias.json", + "aws-xray-samplingrule.json", + "aws-route53resolver-resolverrule.json", + "aws-oam-sink.json", + "aws-workspaces-workspace.json", + "aws-datasync-locationobjectstorage.json", + "aws-ecs-capacityprovider.json", + "aws-elasticache-cachecluster.json", + "aws-logs-destination.json", + "aws-eks-nodegroup.json", + "aws-organizations-organizationalunit.json", + "aws-sqs-queue.json", + "aws-ec2-securitygroupingress.json", + "aws-batch-computeenvironment.json", + "aws-events-eventbuspolicy.json", + "aws-ecr-registrypolicy.json", + "aws-rds-dbsecuritygroup.json", + "aws-ssm-parameter.json", + "aws-config-deliverychannel.json", + "aws-iam-oidcprovider.json", + "aws-ce-anomalymonitor.json", + "aws-resourcegroups-group.json", + "aws-cloudformation-resourcedefaultversion.json", + "aws-cloudfront-cachepolicy.json", + "aws-appconfig-deployment.json", + "aws-accessanalyzer-analyzer.json", + "aws-ec2-ec2fleet.json", + "aws-ec2-vpcendpointservice.json", + "aws-ec2-launchtemplate.json", + "aws-cloudfront-originrequestpolicy.json", + "aws-ec2-dhcpoptions.json", + "aws-iam-servicelinkedrole.json", + "aws-ec2-eip.json", + "aws-cloudformation-resourceversion.json", + "aws-securityhub-hub.json", + "aws-s3-accesspoint.json", + "aws-batch-jobqueue.json", + "aws-elasticloadbalancingv2-listener.json", + "aws-cloudformation-waitconditionhandle.json", + "aws-eks-addon.json", +] diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/amzn-sdc-deployment.json b/src/cfnlint/data/schemas/providers/ca_west_1/amzn-sdc-deployment.json new file mode 100644 index 0000000000..7844de4096 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/amzn-sdc-deployment.json @@ -0,0 +1,47 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/S3Key" + ], + "description": "Resource Type definition for AMZN::SDC::Deployment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ConfigName": { + "type": "string" + }, + "Dimension": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PipelineId": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "TargetRegionOverride": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ConfigName", + "S3Bucket", + "S3Key", + "Stage", + "Dimension" + ], + "typeName": "AMZN::SDC::Deployment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-account.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-account.json new file mode 100644 index 0000000000..2fb72e9114 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-account.json @@ -0,0 +1,19 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::ApiGateway::Account", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CloudWatchRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::Account" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-apikey.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-apikey.json new file mode 100644 index 0000000000..bbc59b7abb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-apikey.json @@ -0,0 +1,83 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/GenerateDistinctId", + "/properties/Value" + ], + "definitions": { + "StageKey": { + "additionalProperties": false, + "properties": { + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ApiKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "GenerateDistinctId": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StageKeys": { + "items": { + "$ref": "#/definitions/StageKey" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Value": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ApiKey" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-authorizer.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-authorizer.json new file mode 100644 index 0000000000..9f8245e3e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-authorizer.json @@ -0,0 +1,64 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Authorizer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AuthType": { + "type": "string" + }, + "AuthorizerCredentials": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "maximum": 3600, + "minimum": 0, + "type": "integer" + }, + "AuthorizerUri": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IdentitySource": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProviderARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "Type": { + "enum": [ + "TOKEN", + "REQUEST", + "COGNITO_USER_POOLS" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-basepathmapping.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-basepathmapping.json new file mode 100644 index 0000000000..366b329398 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-basepathmapping.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/BasePath", + "/properties/DomainName" + ], + "description": "Resource Type definition for AWS::ApiGateway::BasePathMapping", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BasePath": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::BasePathMapping" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-clientcertificate.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-clientcertificate.json new file mode 100644 index 0000000000..021bfd6a85 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-clientcertificate.json @@ -0,0 +1,44 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ClientCertificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ClientCertificate" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-deployment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-deployment.json new file mode 100644 index 0000000000..70dba1a1c0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-deployment.json @@ -0,0 +1,220 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentCanarySettings", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "DeploymentCanarySettings": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "StageDescription": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "MetricsEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Deployment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DeploymentCanarySettings": { + "$ref": "#/definitions/DeploymentCanarySettings" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StageDescription": { + "$ref": "#/definitions/StageDescription" + }, + "StageName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Deployment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-documentationpart.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-documentationpart.json new file mode 100644 index 0000000000..c387182671 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-documentationpart.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Location", + "/properties/RestApiId" + ], + "definitions": { + "Location": { + "additionalProperties": false, + "properties": { + "Method": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "StatusCode": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DocumentationPart", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/Location" + }, + "Properties": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId", + "Properties", + "Location" + ], + "typeName": "AWS::ApiGateway::DocumentationPart" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-documentationversion.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-documentationversion.json new file mode 100644 index 0000000000..6c3162fd9b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-documentationversion.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DocumentationVersion", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::DocumentationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DocumentationVersion", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::DocumentationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-domainname.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-domainname.json new file mode 100644 index 0000000000..c571bde8c2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-domainname.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DomainName", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CertificateArn": { + "type": "string" + }, + "DistributionDomainName": { + "type": "string" + }, + "DistributionHostedZoneId": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "Id": { + "type": "string" + }, + "RegionalCertificateArn": { + "type": "string" + }, + "RegionalDomainName": { + "type": "string" + }, + "RegionalHostedZoneId": { + "type": "string" + }, + "SecurityPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/DistributionDomainName", + "/properties/RegionalDomainName", + "/properties/Id", + "/properties/DistributionHostedZoneId", + "/properties/RegionalHostedZoneId" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::DomainName" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-gatewayresponse.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-gatewayresponse.json new file mode 100644 index 0000000000..13fa8c2dba --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-gatewayresponse.json @@ -0,0 +1,72 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResponseType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::GatewayResponse", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "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": [ + "RestApiId", + "ResponseType" + ], + "typeName": "AWS::ApiGateway::GatewayResponse" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-method.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-method.json new file mode 100644 index 0000000000..c895cf0160 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-method.json @@ -0,0 +1,208 @@ +{ + "additionalProperties": false, + "definitions": { + "Integration": { + "additionalProperties": false, + "properties": { + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CacheNamespace": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandling": { + "type": "string" + }, + "Credentials": { + "type": "string" + }, + "IntegrationHttpMethod": { + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/IntegrationResponse" + }, + "type": "array", + "uniqueItems": true + }, + "PassthroughBehavior": { + "type": "string" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "Type": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, + "IntegrationResponse": { + "additionalProperties": false, + "properties": { + "ContentHandling": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "SelectionPattern": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "MethodResponse": { + "additionalProperties": false, + "properties": { + "ResponseModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Method", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/MethodResponse" + }, + "type": "array", + "uniqueItems": true + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "RequestValidatorId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResourceId", + "RestApiId", + "HttpMethod" + ], + "typeName": "AWS::ApiGateway::Method" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-model.json new file mode 100644 index 0000000000..f93e5b8eb8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-model.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/ContentType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Model", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Schema": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Model" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-requestvalidator.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-requestvalidator.json new file mode 100644 index 0000000000..65d76759ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-requestvalidator.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::RequestValidator", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "ValidateRequestBody": { + "type": "boolean" + }, + "ValidateRequestParameters": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::RequestValidator" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-resource.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-resource.json new file mode 100644 index 0000000000..d99746d395 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-resource.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PathPart", + "/properties/ParentId", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Resource", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "PathPart": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParentId", + "PathPart", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Resource" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-restapi.json new file mode 100644 index 0000000000..857b4a9c90 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-restapi.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::RestApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeySourceType": { + "enum": [ + "HEADER", + "AUTHORIZER" + ], + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Body": { + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "MinimumCompressionSize": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "type": "object" + }, + "RootResourceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/RootResourceId" + ], + "typeName": "AWS::ApiGateway::RestApi" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-stage.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-stage.json new file mode 100644 index 0000000000..715adbbabd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-stage.json @@ -0,0 +1,167 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StageName", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "DeploymentId": { + "type": "string" + }, + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Stage", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DeploymentId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Stage" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-usageplan.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-usageplan.json new file mode 100644 index 0000000000..73b66424f8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-usageplan.json @@ -0,0 +1,107 @@ +{ + "additionalProperties": false, + "definitions": { + "ApiStage": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "Throttle": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ThrottleSettings" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "QuotaSettings": { + "additionalProperties": false, + "properties": { + "Limit": { + "type": "integer" + }, + "Offset": { + "type": "integer" + }, + "Period": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "ThrottleSettings": { + "additionalProperties": false, + "properties": { + "BurstLimit": { + "type": "integer" + }, + "RateLimit": { + "type": "number" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::UsagePlan", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiStages": { + "items": { + "$ref": "#/definitions/ApiStage" + }, + "type": "array", + "uniqueItems": true + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Quota": { + "$ref": "#/definitions/QuotaSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throttle": { + "$ref": "#/definitions/ThrottleSettings" + }, + "UsagePlanName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::UsagePlan" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-usageplankey.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-usageplankey.json new file mode 100644 index 0000000000..6454c66f61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-usageplankey.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyType", + "/properties/UsagePlanId", + "/properties/KeyId" + ], + "description": "Resource Type definition for AWS::ApiGateway::UsagePlanKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "KeyId": { + "type": "string" + }, + "KeyType": { + "enum": [ + "API_KEY" + ], + "type": "string" + }, + "UsagePlanId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "KeyType", + "UsagePlanId", + "KeyId" + ], + "typeName": "AWS::ApiGateway::UsagePlanKey" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-appconfig-application.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-appconfig-application.json new file mode 100644 index 0000000000..39bc4f948d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-appconfig-application.json @@ -0,0 +1,46 @@ +{ + "additionalProperties": false, + "definitions": { + "Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppConfig::Application", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tags" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "typeName": "AWS::AppConfig::Application" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-appconfig-configurationprofile.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-appconfig-configurationprofile.json new file mode 100644 index 0000000000..2ead06d48c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-appconfig-configurationprofile.json @@ -0,0 +1,87 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/LocationUri", + "/properties/Type", + "/properties/ApplicationId" + ], + "definitions": { + "Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "Validators": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppConfig::ConfigurationProfile", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KmsKeyIdentifier": { + "type": "string" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RetrievalRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tags" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "Validators": { + "items": { + "$ref": "#/definitions/Validators" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "LocationUri", + "ApplicationId", + "Name" + ], + "typeName": "AWS::AppConfig::ConfigurationProfile" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalabletarget.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalabletarget.json new file mode 100644 index 0000000000..fd5c03df44 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalabletarget.json @@ -0,0 +1,114 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceId", + "/properties/ScalableDimension", + "/properties/ServiceNamespace" + ], + "definitions": { + "ScalableTargetAction": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + } + }, + "type": "object" + }, + "ScheduledAction": { + "additionalProperties": false, + "properties": { + "EndTime": { + "type": "string" + }, + "ScalableTargetAction": { + "$ref": "#/definitions/ScalableTargetAction" + }, + "Schedule": { + "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "Timezone": { + "type": "string" + } + }, + "required": [ + "ScheduledActionName", + "Schedule" + ], + "type": "object" + }, + "SuspendedState": { + "additionalProperties": false, + "properties": { + "DynamicScalingInSuspended": { + "type": "boolean" + }, + "DynamicScalingOutSuspended": { + "type": "boolean" + }, + "ScheduledScalingSuspended": { + "type": "boolean" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApplicationAutoScaling::ScalableTarget", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "ResourceId": { + "type": "string" + }, + "RoleARN": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScheduledActions": { + "items": { + "$ref": "#/definitions/ScheduledAction" + }, + "type": "array", + "uniqueItems": true + }, + "ServiceNamespace": { + "type": "string" + }, + "SuspendedState": { + "$ref": "#/definitions/SuspendedState" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResourceId", + "ServiceNamespace", + "ScalableDimension", + "MinCapacity", + "RoleARN", + "MaxCapacity" + ], + "typeName": "AWS::ApplicationAutoScaling::ScalableTarget" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json new file mode 100644 index 0000000000..d943649fca --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-applicationautoscaling-scalingpolicy.json @@ -0,0 +1,308 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceId", + "/properties/ScalableDimension", + "/properties/PolicyName", + "/properties/ServiceNamespace", + "/properties/ScalingTargetId" + ], + "definitions": { + "CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Metrics": { + "items": { + "$ref": "#/definitions/TargetTrackingMetricDataQuery" + }, + "type": "array", + "uniqueItems": true + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "enum": [ + "DynamoDBReadCapacityUtilization", + "DynamoDBWriteCapacityUtilization", + "ALBRequestCountPerTarget", + "RDSReaderAverageCPUUtilization", + "RDSReaderAverageDatabaseConnections", + "EC2SpotFleetRequestAverageCPUUtilization", + "EC2SpotFleetRequestAverageNetworkIn", + "EC2SpotFleetRequestAverageNetworkOut", + "SageMakerVariantInvocationsPerInstance", + "ECSServiceAverageCPUUtilization", + "ECSServiceAverageMemoryUtilization", + "AppStreamAverageCapacityUtilization", + "ComprehendInferenceUtilization", + "LambdaProvisionedConcurrencyUtilization", + "CassandraReadCapacityUtilization", + "CassandraWriteCapacityUtilization", + "KafkaBrokerStorageUtilization", + "ElastiCachePrimaryEngineCPUUtilization", + "ElastiCacheReplicaEngineCPUUtilization", + "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage", + "NeptuneReaderAverageCPUUtilization", + "SageMakerVariantProvisionedConcurrencyUtilization", + "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage", + "SageMakerInferenceComponentInvocationsPerCopy" + ], + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "StepAdjustment": { + "additionalProperties": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "StepScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "Cooldown": { + "type": "integer" + }, + "MetricAggregationType": { + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/StepAdjustment" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "TargetTrackingMetric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/TargetTrackingMetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "type": "object" + }, + "TargetTrackingMetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/TargetTrackingMetricStat" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "TargetTrackingMetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "TargetTrackingMetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/TargetTrackingMetric" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Stat", + "Metric" + ], + "type": "object" + }, + "TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/PredefinedMetricSpecification" + }, + "ScaleInCooldown": { + "type": "integer" + }, + "ScaleOutCooldown": { + "type": "integer" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy", + "oneOf": [ + { + "required": [ + "ScalingTargetId" + ] + }, + { + "required": [ + "ResourceId", + "ScalableDimension", + "ServiceNamespace" + ] + } + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "enum": [ + "StepScaling", + "TargetTrackingScaling" + ], + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingTargetId": { + "type": "string" + }, + "ServiceNamespace": { + "type": "string" + }, + "StepScalingPolicyConfiguration": { + "$ref": "#/definitions/StepScalingPolicyConfiguration" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyType", + "PolicyName" + ], + "typeName": "AWS::ApplicationAutoScaling::ScalingPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-autoscalinggroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-autoscalinggroup.json new file mode 100644 index 0000000000..ed22fe13b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-autoscalinggroup.json @@ -0,0 +1,641 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceId", + "/properties/AutoScalingGroupName" + ], + "definitions": { + "AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceMaintenancePolicy": { + "additionalProperties": false, + "properties": { + "MaxHealthyPercentage": { + "type": "integer" + }, + "MinHealthyPercentage": { + "type": "integer" + } + }, + "type": "object" + }, + "InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AllowedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/MemoryMiBRequest" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/VCpuCountRequest" + } + }, + "type": "object" + }, + "InstancesDistribution": { + "additionalProperties": false, + "properties": { + "OnDemandAllocationStrategy": { + "type": "string" + }, + "OnDemandBaseCapacity": { + "type": "integer" + }, + "OnDemandPercentageAboveBaseCapacity": { + "type": "integer" + }, + "SpotAllocationStrategy": { + "type": "string" + }, + "SpotInstancePools": { + "type": "integer" + }, + "SpotMaxPrice": { + "type": "string" + } + }, + "type": "object" + }, + "LaunchTemplate": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/LaunchTemplateOverrides" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "LaunchTemplateSpecification" + ], + "type": "object" + }, + "LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirements" + }, + "InstanceType": { + "type": "string" + }, + "LaunchTemplateSpecification": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "WeightedCapacity": { + "type": "string" + } + }, + "type": "object" + }, + "LaunchTemplateSpecification": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "LaunchTemplateName": false + }, + "required": [ + "LaunchTemplateID" + ], + "type": "object" + }, + { + "properties": { + "LaunchTemplateID": false + }, + "required": [ + "LaunchTemplateName" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['LaunchTemplateID', 'LaunchTemplateName']", + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "LifecycleHookSpecification": { + "additionalProperties": false, + "properties": { + "DefaultResult": { + "type": "string" + }, + "HeartbeatTimeout": { + "type": "integer" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "LifecycleHookName", + "LifecycleTransition" + ], + "type": "object" + }, + "MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "MetricsCollection": { + "additionalProperties": false, + "properties": { + "Granularity": { + "type": "string" + }, + "Metrics": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Granularity" + ], + "type": "object" + }, + "MixedInstancesPolicy": { + "additionalProperties": false, + "properties": { + "InstancesDistribution": { + "$ref": "#/definitions/InstancesDistribution" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplate" + } + }, + "required": [ + "LaunchTemplate" + ], + "type": "object" + }, + "NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "NotificationTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "TopicARN": { + "type": "string" + } + }, + "required": [ + "TopicARN" + ], + "type": "object" + }, + "TagProperty": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "PropagateAtLaunch": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key", + "PropagateAtLaunch" + ], + "type": "object" + }, + "TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "VCpuCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + } + }, + "dependencies": { + "InstanceId": { + "properties": { + "LaunchConfigurationName": false, + "LaunchTemplate": false, + "MixedInstancesPolicy": false + }, + "type": "object" + }, + "LaunchConfigurationName": { + "properties": { + "InstanceId": false, + "LaunchTemplate": false, + "MixedInstancesPolicy": false + }, + "type": "object" + }, + "LaunchTemplate": { + "properties": { + "InstanceId": false, + "LaunchConfigurationName": false, + "MixedInstancesPolicy": false + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AutoScaling::AutoScalingGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "CapacityRebalance": { + "type": "boolean" + }, + "Context": { + "type": "string" + }, + "Cooldown": { + "type": "string" + }, + "DefaultInstanceWarmup": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "string" + }, + "DesiredCapacityType": { + "type": "string" + }, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "HealthCheckType": { + "enum": [ + "EC2", + "ELB" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceMaintenancePolicy": { + "$ref": "#/definitions/InstanceMaintenancePolicy" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/LaunchTemplateSpecification" + }, + "LaunchTemplateSpecification": { + "type": "string" + }, + "LifecycleHookSpecificationList": { + "items": { + "$ref": "#/definitions/LifecycleHookSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "LoadBalancerNames": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MaxInstanceLifetime": { + "type": "integer" + }, + "MaxSize": { + "type": "string" + }, + "MetricsCollection": { + "items": { + "$ref": "#/definitions/MetricsCollection" + }, + "type": "array", + "uniqueItems": false + }, + "MinSize": { + "type": "string" + }, + "MixedInstancesPolicy": { + "$ref": "#/definitions/MixedInstancesPolicy" + }, + "NewInstancesProtectedFromScaleIn": { + "type": "boolean" + }, + "NotificationConfigurations": { + "items": { + "$ref": "#/definitions/NotificationConfiguration" + }, + "type": "array", + "uniqueItems": false + }, + "PlacementGroup": { + "type": "string" + }, + "ServiceLinkedRoleARN": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagProperty" + }, + "type": "array", + "uniqueItems": false + }, + "TargetGroupARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TerminationPolicies": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VPCZoneIdentifier": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/LaunchTemplateSpecification" + ], + "required": [ + "MinSize", + "MaxSize" + ], + "typeName": "AWS::AutoScaling::AutoScalingGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-launchconfiguration.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-launchconfiguration.json new file mode 100644 index 0000000000..dae15adc72 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-launchconfiguration.json @@ -0,0 +1,242 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RamDiskId", + "/properties/InstanceType", + "/properties/InstanceMonitoring", + "/properties/ImageId", + "/properties/BlockDeviceMappings", + "/properties/SpotPrice", + "/properties/ClassicLinkVPCId", + "/properties/InstanceId", + "/properties/KeyName", + "/properties/PlacementTenancy", + "/properties/LaunchConfigurationName", + "/properties/IamInstanceProfile", + "/properties/UserData", + "/properties/AssociatePublicIpAddress", + "/properties/KernelId", + "/properties/EbsOptimized", + "/properties/SecurityGroups", + "/properties/MetadataOptions", + "/properties/ClassicLinkVPCSecurityGroups" + ], + "definitions": { + "BlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "Throughput": { + "type": "integer" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/BlockDevice" + }, + "NoDevice": { + "type": "boolean" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "MetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "type": "string" + }, + "HttpPutResponseHopLimit": { + "type": "integer" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AutoScaling::LaunchConfiguration", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "ClassicLinkVPCId": { + "type": "string" + }, + "ClassicLinkVPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceMonitoring": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "MetadataOptions": { + "$ref": "#/definitions/MetadataOptions" + }, + "PlacementTenancy": { + "type": "string" + }, + "RamDiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SpotPrice": { + "type": "string" + }, + "UserData": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ImageId", + "InstanceType" + ], + "typeName": "AWS::AutoScaling::LaunchConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-lifecyclehook.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-lifecyclehook.json new file mode 100644 index 0000000000..884f7912ef --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-lifecyclehook.json @@ -0,0 +1,56 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AutoScalingGroupName", + "/properties/LifecycleHookName" + ], + "description": "Resource Type definition for AWS::AutoScaling::LifecycleHook", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DefaultResult": { + "enum": [ + "ABANDON", + "CONTINUE" + ], + "type": "string" + }, + "HeartbeatTimeout": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "enum": [ + "autoscaling:EC2_INSTANCE_LAUNCHING", + "autoscaling:EC2_INSTANCE_TERMINATING" + ], + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "LifecycleTransition", + "AutoScalingGroupName" + ], + "typeName": "AWS::AutoScaling::LifecycleHook" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-scalingpolicy.json new file mode 100644 index 0000000000..f1c0dad780 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-scalingpolicy.json @@ -0,0 +1,404 @@ +{ + "additionalProperties": false, + "definitions": { + "CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "enum": [ + "Average", + "Minimum", + "Maximum", + "SampleCount", + "Sum" + ], + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Statistic", + "Namespace" + ], + "type": "object" + }, + "Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "MetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/MetricStat" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/Metric" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Stat", + "Metric" + ], + "type": "object" + }, + "PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "enum": [ + "ASGAverageCPUUtilization", + "ASGAverageNetworkIn", + "ASGAverageNetworkOut", + "ALBRequestCountPerTarget" + ], + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacityBreachBehavior": { + "type": "string" + }, + "MaxCapacityBuffer": { + "type": "integer" + }, + "MetricSpecifications": { + "items": { + "$ref": "#/definitions/PredictiveScalingMetricSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Mode": { + "type": "string" + }, + "SchedulingBufferTime": { + "type": "integer" + } + }, + "required": [ + "MetricSpecifications" + ], + "type": "object" + }, + "PredictiveScalingCustomizedCapacityMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedLoadMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedScalingMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "CustomizedCapacityMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedCapacityMetric" + }, + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedLoadMetric" + }, + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedScalingMetric" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedLoadMetric" + }, + "PredefinedMetricPairSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedMetricPair" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedScalingMetric" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "PredictiveScalingPredefinedLoadMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedMetricPair": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedScalingMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "StepAdjustment": { + "additionalProperties": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/PredefinedMetricSpecification" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AutoScaling::ScalingPolicy", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdjustmentType": { + "enum": [ + "ChangeInCapacity", + "ExactCapacity", + "PercentChangeInCapacity" + ], + "type": "string" + }, + "AutoScalingGroupName": { + "type": "string" + }, + "Cooldown": { + "type": "string" + }, + "EstimatedInstanceWarmup": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "MetricAggregationType": { + "enum": [ + "Average", + "Maximum", + "Minimum" + ], + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "PolicyType": { + "enum": [ + "PredictiveScaling", + "SimpleScaling", + "StepScaling", + "TargetTrackingScaling" + ], + "type": "string" + }, + "PredictiveScalingConfiguration": { + "$ref": "#/definitions/PredictiveScalingConfiguration" + }, + "ScalingAdjustment": { + "type": "integer" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/StepAdjustment" + }, + "type": "array", + "uniqueItems": true + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/TargetTrackingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AutoScalingGroupName" + ], + "typeName": "AWS::AutoScaling::ScalingPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-scheduledaction.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-scheduledaction.json new file mode 100644 index 0000000000..72061ceb65 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-autoscaling-scheduledaction.json @@ -0,0 +1,46 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AutoScalingGroupName" + ], + "description": "Resource Type definition for AWS::AutoScaling::ScheduledAction", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoScalingGroupName": { + "type": "string" + }, + "DesiredCapacity": { + "type": "integer" + }, + "EndTime": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MaxSize": { + "type": "integer" + }, + "MinSize": { + "type": "integer" + }, + "Recurrence": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "TimeZone": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AutoScalingGroupName" + ], + "typeName": "AWS::AutoScaling::ScheduledAction" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudformation-stack.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudformation-stack.json new file mode 100644 index 0000000000..3e9131d8d4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudformation-stack.json @@ -0,0 +1,72 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFormation::Stack", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "NotificationARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": [ + "string", + "number", + "integer", + "object", + "array", + "boolean" + ] + } + }, + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TemplateURL": { + "type": "string" + }, + "TimeoutInMinutes": { + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TemplateURL" + ], + "typeName": "AWS::CloudFormation::Stack" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudformation-waitcondition.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudformation-waitcondition.json new file mode 100644 index 0000000000..822d109c45 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudformation-waitcondition.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::CloudFormation::WaitCondition", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Count": { + "type": "integer" + }, + "Data": { + "type": "object" + }, + "Handle": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Timeout": { + "maximum": 43200, + "minimum": 0, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Data" + ], + "typeName": "AWS::CloudFormation::WaitCondition" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudwatch-alarm.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudwatch-alarm.json new file mode 100644 index 0000000000..426484e5c4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudwatch-alarm.json @@ -0,0 +1,294 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_cloudwatch_alarm/aws_namespace_period" + ], + "createOnlyProperties": [ + "/properties/AlarmName" + ], + "definitions": { + "Dimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "type": "object" + }, + "MetricDataQuery": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Expression": { + "type": "string" + }, + "Id": { + "pattern": "^([a-z])([A-Za-z0-9\\_]*)$", + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/MetricStat" + }, + "Period": { + "type": "integer" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/Metric" + }, + "Period": { + "type": "integer" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Stat", + "Period", + "Metric" + ], + "type": "object" + } + }, + "dependencies": { + "Statistic": { + "properties": { + "ExtendedStatistic": false + }, + "type": "object" + }, + "Threshold": { + "properties": { + "ThresholdMetricId": false + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudWatch::Alarm", + "oneOf": [ + { + "properties": { + "Dimensions": false, + "ExtendedStatistic": false, + "MetricName": false, + "Namespace": false, + "Period": false, + "Statistic": false, + "Unit": false + }, + "required": [ + "Metrics" + ] + }, + { + "required": [ + "MetricName" + ] + } + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ActionsEnabled": { + "type": "boolean" + }, + "AlarmActions": { + "items": { + "maximum": 1024, + "minimum": 1, + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "AlarmDescription": { + "type": "string" + }, + "AlarmName": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "ComparisonOperator": { + "enum": [ + "GreaterThanOrEqualToThreshold", + "GreaterThanThreshold", + "LessThanThreshold", + "LessThanOrEqualToThreshold", + "LessThanLowerOrGreaterThanUpperThreshold", + "LessThanLowerThreshold", + "GreaterThanUpperThreshold" + ], + "type": "string" + }, + "DatapointsToAlarm": { + "type": "integer" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + }, + "EvaluateLowSampleCountPercentile": { + "type": "string" + }, + "EvaluationPeriods": { + "type": "integer" + }, + "ExtendedStatistic": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InsufficientDataActions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "MetricName": { + "type": "string" + }, + "Metrics": { + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + }, + "Namespace": { + "type": "string" + }, + "OKActions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Period": { + "type": "integer" + }, + "Statistic": { + "enum": [ + "SampleCount", + "Average", + "Sum", + "Minimum", + "Maximum" + ], + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "ThresholdMetricId": { + "type": "string" + }, + "TreatMissingData": { + "enum": [ + "breaching", + "ignore", + "missing", + "notBreaching" + ], + "type": "string" + }, + "Unit": { + "enum": [ + "Seconds", + "Microseconds", + "Milliseconds", + "Bytes", + "Kilobytes", + "Megabytes", + "Gigabytes", + "Terabytes", + "Bits", + "Kilobits", + "Megabits", + "Gigabits", + "Terabits", + "Percent", + "Count", + "Bytes/Second", + "Kilobytes/Second", + "Megabytes/Second", + "Gigabytes/Second", + "Terabytes/Second", + "Bits/Second", + "Kilobits/Second", + "Megabits/Second", + "Gigabits/Second", + "Terabits/Second", + "Count/Second", + "None" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "ComparisonOperator", + "EvaluationPeriods" + ], + "typeName": "AWS::CloudWatch::Alarm" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-codedeploy-application.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-codedeploy-application.json new file mode 100644 index 0000000000..068d831347 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-codedeploy-application.json @@ -0,0 +1,56 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/ComputePlatform" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::Application", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "ComputePlatform": { + "enum": [ + "Server", + "Lambda", + "ECS" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::CodeDeploy::Application" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-codedeploy-deploymentconfig.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-codedeploy-deploymentconfig.json new file mode 100644 index 0000000000..4f41133a1d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-codedeploy-deploymentconfig.json @@ -0,0 +1,106 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentConfigName", + "/properties/MinimumHealthyHosts", + "/properties/ComputePlatform", + "/properties/TrafficRoutingConfig" + ], + "definitions": { + "MinimumHealthyHosts": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "HOST_COUNT", + "FLEET_PERCENT" + ], + "type": "string" + }, + "Value": { + "type": "integer" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "TimeBasedCanary": { + "additionalProperties": false, + "properties": { + "CanaryInterval": { + "type": "integer" + }, + "CanaryPercentage": { + "type": "integer" + } + }, + "required": [ + "CanaryPercentage", + "CanaryInterval" + ], + "type": "object" + }, + "TimeBasedLinear": { + "additionalProperties": false, + "properties": { + "LinearInterval": { + "type": "integer" + }, + "LinearPercentage": { + "type": "integer" + } + }, + "required": [ + "LinearInterval", + "LinearPercentage" + ], + "type": "object" + }, + "TrafficRoutingConfig": { + "additionalProperties": false, + "properties": { + "TimeBasedCanary": { + "$ref": "#/definitions/TimeBasedCanary" + }, + "TimeBasedLinear": { + "$ref": "#/definitions/TimeBasedLinear" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodeDeploy::DeploymentConfig", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ComputePlatform": { + "type": "string" + }, + "DeploymentConfigName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MinimumHealthyHosts": { + "$ref": "#/definitions/MinimumHealthyHosts" + }, + "TrafficRoutingConfig": { + "$ref": "#/definitions/TrafficRoutingConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::CodeDeploy::DeploymentConfig" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-codepipeline-customactiontype.json new file mode 100644 index 0000000000..6ab4bff7bf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-codepipeline-customactiontype.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigurationProperties", + "/properties/OutputArtifactDetails", + "/properties/Version", + "/properties/InputArtifactDetails", + "/properties/Settings", + "/properties/Provider", + "/properties/Category" + ], + "definitions": { + "ArtifactDetails": { + "additionalProperties": false, + "properties": { + "MaximumCount": { + "type": "integer" + }, + "MinimumCount": { + "type": "integer" + } + }, + "required": [ + "MinimumCount", + "MaximumCount" + ], + "type": "object" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Key": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { + "enum": [ + "String", + "Number", + "Boolean" + ], + "type": "string" + } + }, + "required": [ + "Secret", + "Required", + "Key", + "Name" + ], + "type": "object" + }, + "Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodePipeline::CustomActionType", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { + "items": { + "$ref": "#/definitions/ConfigurationProperties" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "Provider": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/Settings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Category", + "InputArtifactDetails", + "Version", + "OutputArtifactDetails", + "Provider" + ], + "typeName": "AWS::CodePipeline::CustomActionType" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-config-configrule.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-config-configrule.json new file mode 100644 index 0000000000..ac31a41629 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-config-configrule.json @@ -0,0 +1,175 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigRuleName" + ], + "definitions": { + "CustomPolicyDetails": { + "additionalProperties": false, + "properties": { + "EnableDebugLogDelivery": { + "type": "boolean" + }, + "PolicyRuntime": { + "type": "string" + }, + "PolicyText": { + "type": "string" + } + }, + "type": "object" + }, + "EvaluationModeConfiguration": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "additionalProperties": false, + "properties": { + "ComplianceResourceId": { + "type": "string" + }, + "ComplianceResourceTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TagKey": { + "type": "string" + }, + "TagValue": { + "type": "string" + } + }, + "type": "object" + }, + "Source": { + "additionalProperties": false, + "properties": { + "CustomPolicyDetails": { + "$ref": "#/definitions/CustomPolicyDetails" + }, + "Owner": { + "enum": [ + "CUSTOM_LAMBDA", + "AWS", + "CUSTOM_POLICY" + ], + "type": "string" + }, + "SourceDetails": { + "items": { + "$ref": "#/definitions/SourceDetail" + }, + "type": "array", + "uniqueItems": true + }, + "SourceIdentifier": { + "type": "string" + } + }, + "required": [ + "Owner" + ], + "type": "object" + }, + "SourceDetail": { + "additionalProperties": false, + "properties": { + "EventSource": { + "enum": [ + "aws.config" + ], + "type": "string" + }, + "MaximumExecutionFrequency": { + "enum": [ + "One_Hour", + "Three_Hours", + "Six_Hours", + "Twelve_Hours", + "TwentyFour_Hours" + ], + "type": "string" + }, + "MessageType": { + "enum": [ + "ConfigurationItemChangeNotification", + "ConfigurationSnapshotDeliveryCompleted", + "ScheduledNotification", + "OversizedConfigurationItemChangeNotification" + ], + "type": "string" + } + }, + "required": [ + "EventSource", + "MessageType" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Config::ConfigRule", + "primaryIdentifier": [ + "/properties/ConfigRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Compliance": { + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "ConfigRuleId": { + "type": "string" + }, + "ConfigRuleName": { + "type": "string" + }, + "Description": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "EvaluationModes": { + "items": { + "$ref": "#/definitions/EvaluationModeConfiguration" + }, + "type": "array", + "uniqueItems": true + }, + "InputParameters": { + "type": "object" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Source": { + "$ref": "#/definitions/Source" + } + }, + "readOnlyProperties": [ + "/properties/ConfigRuleId", + "/properties/Compliance/Type", + "/properties/Arn" + ], + "required": [ + "Source" + ], + "typeName": "AWS::Config::ConfigRule" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-datapipeline-pipeline.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-datapipeline-pipeline.json new file mode 100644 index 0000000000..d2d735d9b1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-datapipeline-pipeline.json @@ -0,0 +1,173 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "StringValue", + "Key" + ], + "type": "object" + }, + "ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/ParameterAttribute" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/Field" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DataPipeline::Pipeline", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/ParameterObject" + }, + "type": "array", + "uniqueItems": false + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/ParameterValue" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/PipelineObject" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/PipelineTag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParameterObjects", + "Name" + ], + "typeName": "AWS::DataPipeline::Pipeline" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-directoryservice-microsoftad.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-directoryservice-microsoftad.json new file mode 100644 index 0000000000..2ff7abecf1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-directoryservice-microsoftad.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcSettings", + "/properties/Edition", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::MicrosoftAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Edition": { + "enum": [ + "Enterprise", + "Standard" + ], + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::MicrosoftAD" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-directoryservice-simplead.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-directoryservice-simplead.json new file mode 100644 index 0000000000..7646d8ecbe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-directoryservice-simplead.json @@ -0,0 +1,93 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Size", + "/properties/VpcSettings", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/Description", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::SimpleAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "enum": [ + "Small", + "Large" + ], + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Size", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::SimpleAD" +} 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 new file mode 100644 index 0000000000..fb66d92fc4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-customergateway.json @@ -0,0 +1,63 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/IpAddress", + "/properties/BgpAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CustomerGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BgpAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "IpAddress", + "BgpAsn" + ], + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-egressonlyinternetgateway.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-egressonlyinternetgateway.json new file mode 100644 index 0000000000..c40073ee8e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-egressonlyinternetgateway.json @@ -0,0 +1,59 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcId" + ], + "description": "Resource Type definition for AWS::EC2::EgressOnlyInternetGateway", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateEgressOnlyInternetGateway", + "ec2:DescribeEgressOnlyInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteEgressOnlyInternetGateway", + "ec2:DescribeEgressOnlyInternetGateways", + "ec2:DescribeVpcs" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeEgressOnlyInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeEgressOnlyInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "description": "Service Generated ID of the EgressOnlyInternetGateway", + "type": "string" + }, + "VpcId": { + "description": "The ID of the VPC for which to create the egress-only internet gateway.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::EC2::EgressOnlyInternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-eipassociation.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-eipassociation.json new file mode 100644 index 0000000000..2fb86e56a9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-eipassociation.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::EC2::EIPAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocationId": { + "type": "string" + }, + "EIP": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::EC2::EIPAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json new file mode 100644 index 0000000000..30e7b5c2d0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-host.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceType", + "/properties/AvailabilityZone" + ], + "description": "Resource Type definition for AWS::EC2::Host", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoPlacement": { + "enum": [ + "on", + "off" + ], + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "HostRecovery": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone", + "InstanceType" + ], + "typeName": "AWS::EC2::Host" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-internetgateway.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-internetgateway.json new file mode 100644 index 0000000000..6878c4f231 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-internetgateway.json @@ -0,0 +1,87 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::InternetGateway", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateInternetGateway", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteInternetGateway", + "ec2:DescribeInternetGateways" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeInternetGateways" + ] + }, + "update": { + "permissions": [ + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:DescribeInternetGateways" + ] + } + }, + "primaryIdentifier": [ + "/properties/InternetGatewayId" + ], + "properties": { + "InternetGatewayId": { + "description": "ID of internet gateway.", + "type": "string" + }, + "Tags": { + "description": "Any tags to assign to the internet gateway.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/InternetGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::InternetGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkaclentry.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkaclentry.json new file mode 100644 index 0000000000..1636385087 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkaclentry.json @@ -0,0 +1,132 @@ +{ + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "Ipv6CidrBlock" + ] + }, + { + "required": [ + "CidrBlock" + ] + } + ], + "createOnlyProperties": [ + "/properties/Egress", + "/properties/RuleNumber", + "/properties/NetworkAclId" + ], + "definitions": { + "Icmp": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "integer" + }, + "Type": { + "type": "integer" + } + }, + "type": "object" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "type": "integer" + }, + "To": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::NetworkAclEntry", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateNetworkAclEntry", + "ec2:DescribeNetworkAcls" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteNetworkAclEntry", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:ReplaceNetworkAclEntry", + "ec2:DescribeNetworkAcls" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CidrBlock": { + "description": "The IPv4 CIDR range to allow or deny, in CIDR notation (for example, 172.16.0.0/24). Requirement is conditional: You must specify the CidrBlock or Ipv6CidrBlock property", + "type": "string" + }, + "Egress": { + "description": "Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet)", + "type": "boolean" + }, + "Icmp": { + "$ref": "#/definitions/Icmp", + "description": "The Internet Control Message Protocol (ICMP) code and type. Requirement is conditional: Required if specifying 1 (ICMP) for the protocol parameter" + }, + "Id": { + "type": "string" + }, + "Ipv6CidrBlock": { + "description": "The IPv6 network range to allow or deny, in CIDR notation (for example 2001:db8:1234:1a00::/64)", + "type": "string" + }, + "NetworkAclId": { + "description": "The ID of the network ACL", + "type": "string" + }, + "PortRange": { + "$ref": "#/definitions/PortRange", + "description": "The IPv4 network range to allow or deny, in CIDR notation (for example 172.16.0.0/24). We modify the specified CIDR block to its canonical form; for example, if you specify 100.68.0.18/18, we modify it to 100.68.0.0/18" + }, + "Protocol": { + "description": "The protocol number. A value of \"-1\" means all protocols. If you specify \"-1\" or a protocol number other than \"6\" (TCP), \"17\" (UDP), or \"1\" (ICMP), traffic on all ports is allowed, regardless of any ports or ICMP types or codes that you specify. If you specify protocol \"58\" (ICMPv6) and specify an IPv4 CIDR block, traffic for all ICMP types and codes allowed, regardless of any that you specify. If you specify protocol \"58\" (ICMPv6) and specify an IPv6 CIDR block, you must specify an ICMP type and code", + "type": "integer" + }, + "RuleAction": { + "description": "Indicates whether to allow or deny the traffic that matches the rule", + "enum": [ + "allow", + "deny" + ], + "type": "string" + }, + "RuleNumber": { + "description": "Rule number to assign to the entry, such as 100. ACL entries are processed in ascending order by rule number. Entries can't use the same rule number unless one is an egress rule and the other is an ingress rule", + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "NetworkAclId", + "RuleAction", + "RuleNumber", + "Protocol" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::EC2::NetworkAclEntry" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkinterface.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkinterface.json new file mode 100644 index 0000000000..d265a3421d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkinterface.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PrivateIpAddress", + "/properties/InterfaceType", + "/properties/SubnetId" + ], + "definitions": { + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::NetworkInterface", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InterfaceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "PrimaryPrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SecondaryPrivateIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecondaryPrivateIpAddresses", + "/properties/PrimaryPrivateIpAddress" + ], + "required": [ + "SubnetId" + ], + "typeName": "AWS::EC2::NetworkInterface" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkinterfaceattachment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkinterfaceattachment.json new file mode 100644 index 0000000000..327ce418ad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkinterfaceattachment.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::EC2::NetworkInterfaceAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "DeviceIndex": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "InstanceId", + "DeviceIndex", + "NetworkInterfaceId" + ], + "typeName": "AWS::EC2::NetworkInterfaceAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkinterfacepermission.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkinterfacepermission.json new file mode 100644 index 0000000000..f16f086ec1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-networkinterfacepermission.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/Permission", + "/properties/NetworkInterfaceId" + ], + "description": "Resource Type definition for AWS::EC2::NetworkInterfacePermission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AwsAccountId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "Permission": { + "enum": [ + "INSTANCE-ATTACH", + "EIP-ASSOCIATE" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AwsAccountId", + "Permission", + "NetworkInterfaceId" + ], + "typeName": "AWS::EC2::NetworkInterfacePermission" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-placementgroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-placementgroup.json new file mode 100644 index 0000000000..57694bf789 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-placementgroup.json @@ -0,0 +1,27 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Strategy" + ], + "description": "Resource Type definition for AWS::EC2::PlacementGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Strategy": { + "enum": [ + "cluster", + "partition", + "spread" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::EC2::PlacementGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..53b428572b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnet.json @@ -0,0 +1,114 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Ipv6Native", + "/properties/OutpostArn", + "/properties/AvailabilityZoneId", + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/CidrBlock" + ], + "definitions": { + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::Subnet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6Native": { + "type": "boolean" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "$ref": "#/definitions/PrivateDnsNameOptionsOnLaunch" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/Id", + "/properties/Ipv6CidrBlocks" + ], + "required": [ + "VpcId", + "CidrBlock" + ], + "typeName": "AWS::EC2::Subnet" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-gcmchannel.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnetcidrblock.json similarity index 53% rename from src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-gcmchannel.json rename to src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnetcidrblock.json index f193b096ad..1a7288be53 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-gcmchannel.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnetcidrblock.json @@ -1,23 +1,21 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/ApplicationId" + "/properties/Ipv6CidrBlock", + "/properties/SubnetId" ], - "description": "Resource Type definition for AWS::Pinpoint::GCMChannel", + "description": "Resource Type definition for AWS::EC2::SubnetCidrBlock", "primaryIdentifier": [ "/properties/Id" ], "properties": { - "ApiKey": { + "Id": { "type": "string" }, - "ApplicationId": { + "Ipv6CidrBlock": { "type": "string" }, - "Enabled": { - "type": "boolean" - }, - "Id": { + "SubnetId": { "type": "string" } }, @@ -25,8 +23,8 @@ "/properties/Id" ], "required": [ - "ApiKey", - "ApplicationId" + "SubnetId", + "Ipv6CidrBlock" ], - "typeName": "AWS::Pinpoint::GCMChannel" + "typeName": "AWS::EC2::SubnetCidrBlock" } diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnetnetworkaclassociation.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnetnetworkaclassociation.json new file mode 100644 index 0000000000..190241b970 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-subnetnetworkaclassociation.json @@ -0,0 +1,34 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SubnetId", + "/properties/NetworkAclId" + ], + "description": "Resource Type definition for AWS::EC2::SubnetNetworkAclAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AssociationId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NetworkAclId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/AssociationId" + ], + "required": [ + "NetworkAclId", + "SubnetId" + ], + "typeName": "AWS::EC2::SubnetNetworkAclAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-transitgatewayattachment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-transitgatewayattachment.json new file mode 100644 index 0000000000..47b853e538 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-transitgatewayattachment.json @@ -0,0 +1,157 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/VpcId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::TransitGatewayAttachment", + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "description": "The options for the transit gateway vpc attachment.", + "properties": { + "ApplianceModeSupport": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "DnsSupport": { + "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "Ipv6Support": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + } + }, + "type": "object" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "SubnetIds", + "TransitGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volume.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volume.json new file mode 100644 index 0000000000..6126f7c814 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volume.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::Volume", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAttachEnabled": { + "type": "boolean" + }, + "OutpostArn": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throughput": { + "type": "integer" + }, + "VolumeType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone" + ], + "typeName": "AWS::EC2::Volume" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volumeattachment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volumeattachment.json new file mode 100644 index 0000000000..f8ad2ae8b5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-volumeattachment.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Device", + "/properties/InstanceId", + "/properties/VolumeId" + ], + "description": "Resource Type definition for AWS::EC2::VolumeAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Device": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VolumeId", + "InstanceId", + "Device" + ], + "typeName": "AWS::EC2::VolumeAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcdhcpoptionsassociation.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcdhcpoptionsassociation.json new file mode 100644 index 0000000000..7e65252502 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcdhcpoptionsassociation.json @@ -0,0 +1,62 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DhcpOptionsId", + "/properties/VpcId" + ], + "description": "Associates a set of DHCP options with a VPC, or associates no DHCP options with the VPC.", + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateDhcpOptions" + ] + }, + "delete": { + "permissions": [ + "ec2:AssociateDhcpOptions" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeVpcs" + ] + }, + "update": { + "permissions": [ + "ec2:AssociateDhcpOptions" + ] + } + }, + "primaryIdentifier": [ + "/properties/DhcpOptionsId", + "/properties/VpcId" + ], + "properties": { + "DhcpOptionsId": { + "description": "The ID of the DHCP options set, or default to associate no DHCP options with the VPC.", + "type": "string" + }, + "VpcId": { + "description": "The ID of the VPC.", + "type": "string" + } + }, + "replacementStrategy": "delete_then_create", + "required": [ + "VpcId", + "DhcpOptionsId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::EC2::VPCDHCPOptionsAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcendpoint.json new file mode 100644 index 0000000000..c3678aa75e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcendpoint.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/ServiceName" + ], + "description": "Resource Type definition for AWS::EC2::VPCEndpoint", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "ServiceName" + ], + "typeName": "AWS::EC2::VPCEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcgatewayattachment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcgatewayattachment.json new file mode 100644 index 0000000000..737d61ec92 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcgatewayattachment.json @@ -0,0 +1,28 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::EC2::VPCGatewayAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "InternetGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId" + ], + "typeName": "AWS::EC2::VPCGatewayAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..1eadcb5ca9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnection.json @@ -0,0 +1,87 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/StaticRoutesOnly", + "/properties/VpnGatewayId", + "/properties/VpnTunnelOptionsSpecifications" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNConnection", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnectionroute.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnectionroute.json new file mode 100644 index 0000000000..937c564bf6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpnconnectionroute.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DestinationCidrBlock", + "/properties/VpnConnectionId" + ], + "description": "Resource Type definition for AWS::EC2::VPNConnectionRoute", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DestinationCidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], + "typeName": "AWS::EC2::VPNConnectionRoute" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..75dbfb349e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngateway.json @@ -0,0 +1,54 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/AmazonSideAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonSideAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngatewayroutepropagation.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngatewayroutepropagation.json new file mode 100644 index 0000000000..397b42ec86 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpngatewayroutepropagation.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::EC2::VPNGatewayRoutePropagation", + "handlers": { + "create": { + "permissions": [ + "ec2:EnableVgwRoutePropagation", + "ec2:DescribeRouteTables" + ] + }, + "delete": { + "permissions": [ + "ec2:DisableVgwRoutePropagation", + "ec2:DescribeRouteTables" + ] + }, + "update": { + "permissions": [ + "ec2:EnableVgwRoutePropagation", + "ec2:DescribeRouteTables" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "RouteTableIds": { + "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "VpnGatewayId": { + "description": "The ID of the virtual private gateway that is attached to a VPC. The virtual private gateway must be attached to the same VPC that the routing tables are associated with", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RouteTableIds", + "VpnGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", + "taggable": false, + "typeName": "AWS::EC2::VPNGatewayRoutePropagation" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-efs-filesystem.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-efs-filesystem.json new file mode 100644 index 0000000000..b108ba7a54 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-efs-filesystem.json @@ -0,0 +1,100 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/Encrypted", + "/properties/PerformanceMode" + ], + "definitions": { + "ElasticFileSystemTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "TransitionToIA": { + "enum": [ + "AFTER_7_DAYS", + "AFTER_14_DAYS", + "AFTER_30_DAYS", + "AFTER_60_DAYS", + "AFTER_90_DAYS", + "AFTER_1_DAY", + "AFTER_180_DAYS", + "AFTER_270_DAYS", + "AFTER_365_DAYS" + ], + "type": "string" + } + }, + "required": [ + "TransitionToIA" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EFS::FileSystem", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Encrypted": { + "type": "boolean" + }, + "FileSystemTags": { + "items": { + "$ref": "#/definitions/ElasticFileSystemTag" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LifecyclePolicies": { + "items": { + "$ref": "#/definitions/LifecyclePolicy" + }, + "type": "array", + "uniqueItems": true + }, + "PerformanceMode": { + "enum": [ + "generalPurpose", + "maxIO" + ], + "type": "string" + }, + "ProvisionedThroughputInMibps": { + "type": "number" + }, + "ThroughputMode": { + "enum": [ + "bursting", + "provisioned", + "elastic" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::EFS::FileSystem" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-efs-mounttarget.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-efs-mounttarget.json new file mode 100644 index 0000000000..0bfc4cf9d9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-efs-mounttarget.json @@ -0,0 +1,42 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FileSystemId", + "/properties/IpAddress", + "/properties/SubnetId" + ], + "description": "Resource Type definition for AWS::EFS::MountTarget", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "FileSystemId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecurityGroups", + "FileSystemId", + "SubnetId" + ], + "typeName": "AWS::EFS::MountTarget" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticache-subnetgroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticache-subnetgroup.json new file mode 100644 index 0000000000..80ce070829 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticache-subnetgroup.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CacheSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElastiCache::SubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::ElastiCache::SubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-application.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-application.json new file mode 100644 index 0000000000..b613aba6c6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-application.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName" + ], + "definitions": { + "ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/MaxCountRule" + } + }, + "type": "object" + }, + "MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "integer" + } + }, + "type": "object" + }, + "MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Application", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/ApplicationResourceLifecycleConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ElasticBeanstalk::Application" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-applicationversion.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-applicationversion.json new file mode 100644 index 0000000000..1b3a2845a4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-applicationversion.json @@ -0,0 +1,51 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/SourceBundle" + ], + "definitions": { + "SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/SourceBundle" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "SourceBundle" + ], + "typeName": "AWS::ElasticBeanstalk::ApplicationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-configurationtemplate.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-configurationtemplate.json new file mode 100644 index 0000000000..bd1a025e3f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-configurationtemplate.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PlatformArn", + "/properties/ApplicationName", + "/properties/SolutionStackName", + "/properties/EnvironmentId", + "/properties/SourceConfiguration" + ], + "definitions": { + "ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/ConfigurationOptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/SourceConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::ConfigurationTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-environment.json new file mode 100644 index 0000000000..ad67522d06 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticbeanstalk-environment.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CNAMEPrefix", + "/properties/EnvironmentName", + "/properties/ApplicationName", + "/properties/SolutionStackName" + ], + "definitions": { + "OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Environment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EndpointURL": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OperationsRole": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/OptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/EndpointURL" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::Environment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..301c2b100e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,251 @@ +{ + "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" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::LoadBalancer", + "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" + ] + } + }, + "oneOf": [ + { + "properties": { + "Subnets": false + }, + "required": [ + "SubnetMappings" + ], + "type": "object" + }, + { + "properties": { + "SubnetMappings": false + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['SubnetMappings', 'Subnets']", + "primaryIdentifier": [ + "/properties/LoadBalancerArn" + ], + "properties": { + "CanonicalHostedZoneID": { + "description": "The ID of the Amazon Route 53 hosted zone associated with the load balancer.", + "type": "string" + }, + "DNSName": { + "description": "The public DNS name of the load balancer.", + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "description": "Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through PrivateLink", + "type": "string" + }, + "IpAddressType": { + "description": "The type of IP addresses used by the subnets for your load balancer. The possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and IPv6 addresses).", + "type": "string" + }, + "LoadBalancerArn": { + "description": "The Amazon Resource Name (ARN) of the load balancer.", + "type": "string" + }, + "LoadBalancerAttributes": { + "arrayType": "AttributeList", + "description": "The load balancer attributes.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "description": "The full name of the load balancer.", + "type": "string" + }, + "LoadBalancerName": { + "description": "The name of the load balancer.", + "type": "string" + }, + "Name": { + "description": "The name of the load balancer.", + "type": "string" + }, + "Scheme": { + "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer.", + "type": "string" + }, + "SecurityGroups": { + "description": "The IDs of the security groups for the load balancer.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "description": "The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "description": "The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "description": "The tags to assign to the load balancer.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "description": "The type of load balancer. The default is application.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/LoadBalancerFullName", + "/properties/CanonicalHostedZoneID", + "/properties/LoadBalancerArn", + "/properties/DNSName" + ], + "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/ca_west_1/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-emr-securityconfiguration.json new file mode 100644 index 0000000000..1f55dfd600 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-emr-securityconfiguration.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/SecurityConfiguration" + ], + "description": "Resource Type definition for AWS::EMR::SecurityConfiguration", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecurityConfiguration" + ], + "typeName": "AWS::EMR::SecurityConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-emr-step.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-emr-step.json new file mode 100644 index 0000000000..97cc80de6f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-emr-step.json @@ -0,0 +1,83 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/JobFlowId", + "/properties/HadoopJarStep", + "/properties/Name", + "/properties/ActionOnFailure" + ], + "definitions": { + "HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/KeyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EMR::Step", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/HadoopJarStepConfig" + }, + "Id": { + "type": "string" + }, + "JobFlowId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "JobFlowId", + "ActionOnFailure", + "HadoopJarStep", + "Name" + ], + "typeName": "AWS::EMR::Step" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-events-eventbus.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-events-eventbus.json new file mode 100644 index 0000000000..5270600749 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-events-eventbus.json @@ -0,0 +1,62 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/EventSourceName" + ], + "definitions": { + "TagEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Events::EventBus", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "EventSourceName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/TagEntry" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Policy", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "typeName": "AWS::Events::EventBus" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-events-rule.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-events-rule.json new file mode 100644 index 0000000000..a38b3782bb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-events-rule.json @@ -0,0 +1,509 @@ +{ + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "EventPattern" + ] + }, + { + "required": [ + "ScheduleExpression" + ] + } + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/EventBusName" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "BatchArrayProperties": { + "additionalProperties": false, + "properties": { + "Size": { + "type": "integer" + } + }, + "type": "object" + }, + "BatchParameters": { + "additionalProperties": false, + "properties": { + "ArrayProperties": { + "$ref": "#/definitions/BatchArrayProperties" + }, + "JobDefinition": { + "type": "string" + }, + "JobName": { + "type": "string" + }, + "RetryStrategy": { + "$ref": "#/definitions/BatchRetryStrategy" + } + }, + "required": [ + "JobName", + "JobDefinition" + ], + "type": "object" + }, + "BatchRetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "integer" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "required": [ + "CapacityProvider" + ], + "type": "object" + }, + "DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "EcsParameters": { + "additionalProperties": false, + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array", + "uniqueItems": true + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "Group": { + "type": "string" + }, + "LaunchType": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array", + "uniqueItems": true + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array", + "uniqueItems": true + }, + "PlatformVersion": { + "type": "string" + }, + "PropagateTags": { + "type": "string" + }, + "ReferenceId": { + "type": "string" + }, + "TagList": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TaskCount": { + "type": "integer" + }, + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "HttpParameters": { + "additionalProperties": false, + "properties": { + "HeaderParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "PathParameterValues": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "QueryStringParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "InputTransformer": { + "additionalProperties": false, + "properties": { + "InputPathsMap": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "InputTemplate": { + "type": "string" + } + }, + "required": [ + "InputTemplate" + ], + "type": "object" + }, + "KinesisParameters": { + "additionalProperties": false, + "properties": { + "PartitionKeyPath": { + "type": "string" + } + }, + "required": [ + "PartitionKeyPath" + ], + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "RedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "Sql": { + "type": "string" + }, + "StatementName": { + "type": "string" + }, + "WithEvent": { + "type": "boolean" + } + }, + "required": [ + "Database" + ], + "type": "object" + }, + "RetryPolicy": { + "additionalProperties": false, + "properties": { + "MaximumEventAgeInSeconds": { + "type": "integer" + }, + "MaximumRetryAttempts": { + "type": "integer" + } + }, + "type": "object" + }, + "RunCommandParameters": { + "additionalProperties": false, + "properties": { + "RunCommandTargets": { + "items": { + "$ref": "#/definitions/RunCommandTarget" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RunCommandTargets" + ], + "type": "object" + }, + "RunCommandTarget": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Values", + "Key" + ], + "type": "object" + }, + "SageMakerPipelineParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "SageMakerPipelineParameters": { + "additionalProperties": false, + "properties": { + "PipelineParameterList": { + "items": { + "$ref": "#/definitions/SageMakerPipelineParameter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "SqsParameters": { + "additionalProperties": false, + "properties": { + "MessageGroupId": { + "type": "string" + } + }, + "required": [ + "MessageGroupId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "Target": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "BatchParameters": { + "$ref": "#/definitions/BatchParameters" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/DeadLetterConfig" + }, + "EcsParameters": { + "$ref": "#/definitions/EcsParameters" + }, + "HttpParameters": { + "$ref": "#/definitions/HttpParameters" + }, + "Id": { + "type": "string" + }, + "Input": { + "type": "string" + }, + "InputPath": { + "type": "string" + }, + "InputTransformer": { + "$ref": "#/definitions/InputTransformer" + }, + "KinesisParameters": { + "$ref": "#/definitions/KinesisParameters" + }, + "RedshiftDataParameters": { + "$ref": "#/definitions/RedshiftDataParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/RetryPolicy" + }, + "RoleArn": { + "type": "string" + }, + "RunCommandParameters": { + "$ref": "#/definitions/RunCommandParameters" + }, + "SageMakerPipelineParameters": { + "$ref": "#/definitions/SageMakerPipelineParameters" + }, + "SqsParameters": { + "$ref": "#/definitions/SqsParameters" + } + }, + "required": [ + "Id", + "Arn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Events::Rule", + "message": { + "anyOf": "Specify either 'EventPattern' or 'ScheduleExpression'" + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EventBusName": { + "type": "string" + }, + "EventPattern": { + "type": "object" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/Target" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "typeName": "AWS::Events::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-alias.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-alias.json new file mode 100644 index 0000000000..a786ab0606 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-alias.json @@ -0,0 +1,49 @@ +{ + "additionalProperties": false, + "definitions": { + "RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Alias", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/RoutingStrategy" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RoutingStrategy", + "Name" + ], + "typeName": "AWS::GameLift::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-build.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-build.json new file mode 100644 index 0000000000..0d69550edf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-build.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StorageLocation", + "/properties/OperatingSystem" + ], + "definitions": { + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Build", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OperatingSystem": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/S3Location" + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::GameLift::Build" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-fleet.json new file mode 100644 index 0000000000..75d4906f55 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-gamelift-fleet.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PeerVpcAwsAccountId", + "/properties/BuildId", + "/properties/EC2InstanceType", + "/properties/ServerLaunchParameters", + "/properties/CertificateConfiguration", + "/properties/LogPaths", + "/properties/ServerLaunchPath", + "/properties/FleetType", + "/properties/ScriptId", + "/properties/PeerVpcId", + "/properties/InstanceRoleARN" + ], + "definitions": { + "CertificateConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateType": { + "type": "string" + } + }, + "required": [ + "CertificateType" + ], + "type": "object" + }, + "IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "IpRange", + "FromPort", + "ToPort", + "Protocol" + ], + "type": "object" + }, + "ResourceCreationLimitPolicy": { + "additionalProperties": false, + "properties": { + "NewGameSessionsPerCreator": { + "type": "integer" + }, + "PolicyPeriodInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "RuntimeConfiguration": { + "additionalProperties": false, + "properties": { + "GameSessionActivationTimeoutSeconds": { + "type": "integer" + }, + "MaxConcurrentGameSessionActivations": { + "type": "integer" + }, + "ServerProcesses": { + "items": { + "$ref": "#/definitions/ServerProcess" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ServerProcess": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutions": { + "type": "integer" + }, + "LaunchPath": { + "type": "string" + }, + "Parameters": { + "type": "string" + } + }, + "required": [ + "ConcurrentExecutions", + "LaunchPath" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Fleet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BuildId": { + "type": "string" + }, + "CertificateConfiguration": { + "$ref": "#/definitions/CertificateConfiguration" + }, + "Description": { + "type": "string" + }, + "DesiredEC2Instances": { + "type": "integer" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/IpPermission" + }, + "type": "array", + "uniqueItems": true + }, + "EC2InstanceType": { + "cfnRegionSchema": "aws_gamelift_fleet/ec2instancetype_enum", + "type": "string" + }, + "FleetType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceRoleARN": { + "type": "string" + }, + "LogPaths": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MaxSize": { + "type": "integer" + }, + "MetricGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MinSize": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "NewGameSessionProtectionPolicy": { + "type": "string" + }, + "PeerVpcAwsAccountId": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "ResourceCreationLimitPolicy": { + "$ref": "#/definitions/ResourceCreationLimitPolicy" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/RuntimeConfiguration" + }, + "ScriptId": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EC2InstanceType", + "Name" + ], + "typeName": "AWS::GameLift::Fleet" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-accesskey.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-accesskey.json new file mode 100644 index 0000000000..eaf023abb9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-accesskey.json @@ -0,0 +1,40 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Serial", + "/properties/UserName" + ], + "description": "Resource Type definition for AWS::IAM::AccessKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretAccessKey": { + "type": "string" + }, + "Serial": { + "type": "integer" + }, + "Status": { + "enum": [ + "Active", + "Inactive" + ], + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecretAccessKey" + ], + "required": [ + "UserName" + ], + "typeName": "AWS::IAM::AccessKey" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json new file mode 100644 index 0000000000..0323004ac7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json @@ -0,0 +1,65 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GroupName" + ], + "definitions": { + "Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "PolicyDocument" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IAM::Group", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ManagedPolicyArns": { + "items": { + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::(\\d{12}|aws):policy/[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "Path": { + "pattern": "^/(.+/)*$", + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/Policy" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "typeName": "AWS::IAM::Group" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-instanceprofile.json new file mode 100644 index 0000000000..a0ff933e37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-instanceprofile.json @@ -0,0 +1,43 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceProfileName", + "/properties/Path" + ], + "description": "Resource Type definition for AWS::IAM::InstanceProfile", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceProfileName": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Roles": { + "items": { + "pattern": "[a-zA-Z0-9+=,.@\\-_]+", + "type": "string" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Roles" + ], + "typeName": "AWS::IAM::InstanceProfile" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json new file mode 100644 index 0000000000..a1d2024436 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-managedpolicy.json @@ -0,0 +1,59 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ManagedPolicyName", + "/properties/Description", + "/properties/Path" + ], + "description": "Resource Type definition for AWS::IAM::ManagedPolicy", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "ManagedPolicyName": { + "type": "string" + }, + "Path": { + "pattern": "^/(.+/)*$", + "type": "string" + }, + "PolicyDocument": { + "maxLength": 6144, + "type": "object" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyDocument" + ], + "typeName": "AWS::IAM::ManagedPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json new file mode 100644 index 0000000000..8d6c43b20d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json @@ -0,0 +1,71 @@ +{ + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "Users" + ] + }, + { + "required": [ + "Groups" + ] + }, + { + "required": [ + "Roles" + ] + } + ], + "description": "Resource Type definition for AWS::IAM::Policy", + "message": { + "anyOf": "At least one of ['Users', 'Groups', and 'Roles'] is a required property." + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Groups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "awsType": "IamIdentityPolicy", + "type": "object" + }, + "PolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9+=,.@\\-_]+$", + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyName", + "PolicyDocument" + ], + "typeName": "AWS::IAM::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json new file mode 100644 index 0000000000..179fbdc2b1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json @@ -0,0 +1,109 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RoleName", + "/properties/Path" + ], + "definitions": { + "Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "PolicyDocument" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IAM::Role", + "primaryIdentifier": [ + "/properties/RoleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AssumeRolePolicyDocument": { + "maxLength": 2048, + "type": "object" + }, + "Description": { + "type": "string" + }, + "ManagedPolicyArns": { + "items": { + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::(\\d{12}|aws):policy/[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "MaxSessionDuration": { + "maximum": 43200, + "minimum": 3600, + "type": "integer" + }, + "Path": { + "pattern": "^/(.+/)*$", + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/Policy" + }, + "type": "array", + "uniqueItems": false + }, + "RoleId": { + "type": "string" + }, + "RoleName": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/RoleId", + "/properties/Arn" + ], + "required": [ + "AssumeRolePolicyDocument" + ], + "typeName": "AWS::IAM::Role" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json new file mode 100644 index 0000000000..8089663b6d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json @@ -0,0 +1,118 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/UserName" + ], + "definitions": { + "LoginProfile": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "PasswordResetRequired": { + "type": "boolean" + } + }, + "required": [ + "Password" + ], + "type": "object" + }, + "Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "PolicyDocument" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IAM::User", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Groups": { + "items": { + "type": "string" + }, + "maxItems": 10, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "LoginProfile": { + "$ref": "#/definitions/LoginProfile" + }, + "ManagedPolicyArns": { + "items": { + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::(\\d{12}|aws):policy/[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "Path": { + "pattern": "^/(.+/)*$", + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/Policy" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "typeName": "AWS::IAM::User" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-certificate.json new file mode 100644 index 0000000000..1fdf158dd4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-certificate.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateSigningRequest" + ], + "description": "Resource Type definition for AWS::IoT::Certificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "CertificateSigningRequest": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Status", + "CertificateSigningRequest" + ], + "typeName": "AWS::IoT::Certificate" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json new file mode 100644 index 0000000000..36682f62a0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyDocument", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::Policy", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "PolicyDocument" + ], + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policyprincipalattachment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policyprincipalattachment.json new file mode 100644 index 0000000000..1e5d6a7348 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policyprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyName", + "Principal" + ], + "typeName": "AWS::IoT::PolicyPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-thing.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-thing.json new file mode 100644 index 0000000000..8bcc352f41 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-thing.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ThingName" + ], + "definitions": { + "AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IoT::Thing", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AttributePayload" + }, + "Id": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::IoT::Thing" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-thingprincipalattachment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-thingprincipalattachment.json new file mode 100644 index 0000000000..e527a23e87 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-thingprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/ThingName" + ], + "description": "Resource Type definition for AWS::IoT::ThingPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ThingName", + "Principal" + ], + "typeName": "AWS::IoT::ThingPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-topicrule.json new file mode 100644 index 0000000000..406a4e7eae --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-topicrule.json @@ -0,0 +1,618 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleName" + ], + "definitions": { + "Action": { + "additionalProperties": false, + "properties": { + "CloudwatchAlarm": { + "$ref": "#/definitions/CloudwatchAlarmAction" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/CloudwatchMetricAction" + }, + "DynamoDB": { + "$ref": "#/definitions/DynamoDBAction" + }, + "DynamoDBv2": { + "$ref": "#/definitions/DynamoDBv2Action" + }, + "Elasticsearch": { + "$ref": "#/definitions/ElasticsearchAction" + }, + "Firehose": { + "$ref": "#/definitions/FirehoseAction" + }, + "Http": { + "$ref": "#/definitions/HttpAction" + }, + "IotAnalytics": { + "$ref": "#/definitions/IotAnalyticsAction" + }, + "IotEvents": { + "$ref": "#/definitions/IotEventsAction" + }, + "IotSiteWise": { + "$ref": "#/definitions/IotSiteWiseAction" + }, + "Kinesis": { + "$ref": "#/definitions/KinesisAction" + }, + "Lambda": { + "$ref": "#/definitions/LambdaAction" + }, + "Republish": { + "$ref": "#/definitions/RepublishAction" + }, + "S3": { + "$ref": "#/definitions/S3Action" + }, + "Sns": { + "$ref": "#/definitions/SnsAction" + }, + "Sqs": { + "$ref": "#/definitions/SqsAction" + }, + "StepFunctions": { + "$ref": "#/definitions/StepFunctionsAction" + } + }, + "type": "object" + }, + "AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AssetPropertyVariant" + } + }, + "required": [ + "Value", + "Timestamp" + ], + "type": "object" + }, + "AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateReason": { + "type": "string" + }, + "StateValue": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "StateReason", + "StateValue", + "RoleArn" + ], + "type": "object" + }, + "CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricTimestamp": { + "type": "string" + }, + "MetricUnit": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricValue", + "MetricNamespace", + "MetricUnit", + "RoleArn" + ], + "type": "object" + }, + "DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName", + "HashKeyField", + "HashKeyValue", + "RoleArn" + ], + "type": "object" + }, + "DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/PutItemInput" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type", + "Endpoint", + "Index", + "Id", + "RoleArn" + ], + "type": "object" + }, + "FirehoseAction": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "HttpAction": { + "additionalProperties": false, + "properties": { + "Auth": { + "$ref": "#/definitions/HttpAuthorization" + }, + "ConfirmationUrl": { + "type": "string" + }, + "Headers": { + "items": { + "$ref": "#/definitions/HttpActionHeader" + }, + "type": "array", + "uniqueItems": true + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpActionHeader": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "HttpAuthorization": { + "additionalProperties": false, + "properties": { + "Sigv4": { + "$ref": "#/definitions/SigV4Authorization" + } + }, + "type": "object" + }, + "IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "IotEventsAction": { + "additionalProperties": false, + "properties": { + "InputName": { + "type": "string" + }, + "MessageId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "InputName", + "RoleArn" + ], + "type": "object" + }, + "IotSiteWiseAction": { + "additionalProperties": false, + "properties": { + "PutAssetPropertyValueEntries": { + "items": { + "$ref": "#/definitions/PutAssetPropertyValueEntry" + }, + "type": "array", + "uniqueItems": true + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "PutAssetPropertyValueEntries", + "RoleArn" + ], + "type": "object" + }, + "KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "StreamName", + "RoleArn" + ], + "type": "object" + }, + "LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + } + }, + "type": "object" + }, + "PutAssetPropertyValueEntry": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValues": { + "items": { + "$ref": "#/definitions/AssetPropertyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "PropertyValues" + ], + "type": "object" + }, + "PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "RepublishAction": { + "additionalProperties": false, + "properties": { + "Qos": { + "type": "integer" + }, + "RoleArn": { + "type": "string" + }, + "Topic": { + "type": "string" + } + }, + "required": [ + "Topic", + "RoleArn" + ], + "type": "object" + }, + "S3Action": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "SigV4Authorization": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "SigningRegion": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "SigningRegion", + "RoleArn" + ], + "type": "object" + }, + "SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "TargetArn", + "RoleArn" + ], + "type": "object" + }, + "SqsAction": { + "additionalProperties": false, + "properties": { + "QueueUrl": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "RoleArn", + "QueueUrl" + ], + "type": "object" + }, + "StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateMachineName": { + "type": "string" + } + }, + "required": [ + "StateMachineName", + "RoleArn" + ], + "type": "object" + }, + "TopicRulePayload": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": true + }, + "AwsIotSqlVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/Action" + }, + "RuleDisabled": { + "type": "boolean" + }, + "Sql": { + "type": "string" + } + }, + "required": [ + "RuleDisabled", + "Actions", + "Sql" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IoT::TopicRule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RuleName": { + "type": "string" + }, + "TopicRulePayload": { + "$ref": "#/definitions/TopicRulePayload" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "TopicRulePayload" + ], + "typeName": "AWS::IoT::TopicRule" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesis-streamconsumer.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesis-streamconsumer.json new file mode 100644 index 0000000000..a2151c6ec9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-kinesis-streamconsumer.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConsumerName", + "/properties/StreamARN" + ], + "definitions": {}, + "description": "Resource Type definition for AWS::Kinesis::StreamConsumer", + "handlers": { + "create": { + "permissions": [ + "kinesis:RegisterStreamConsumer", + "kinesis:DescribeStreamConsumer" + ] + }, + "delete": { + "permissions": [ + "kinesis:DeregisterStreamConsumer", + "kinesis:DescribeStreamConsumer" + ] + }, + "list": { + "permissions": [ + "kinesis:ListStreamConsumers" + ] + }, + "read": { + "permissions": [ + "kinesis:DescribeStreamConsumer" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConsumerARN" + ], + "properties": { + "ConsumerARN": { + "description": "The ARN returned by Kinesis Data Streams when you registered the consumer. If you don't know the ARN of the consumer that you want to deregister, you can use the ListStreamConsumers operation to get a list of the descriptions of all the consumers that are currently registered with a given data stream. The description of a consumer contains its ARN.", + "type": "string" + }, + "ConsumerCreationTimestamp": { + "description": "Timestamp when the consumer was created.", + "type": "string" + }, + "ConsumerName": { + "description": "The name of the Kinesis Stream Consumer. For a given Kinesis data stream, each consumer must have a unique name. However, consumer names don't have to be unique across data streams.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "ConsumerStatus": { + "description": "A consumer can't read data while in the CREATING or DELETING states. Valid Values: CREATING | DELETING | ACTIVE", + "type": "string" + }, + "StreamARN": { + "description": "The Amazon resource name (ARN) of the Kinesis data stream that you want to register the consumer with.", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws.*:kinesis:.*:\\d{12}:stream/\\S+", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ConsumerARN", + "/properties/ConsumerStatus", + "/properties/ConsumerCreationTimestamp" + ], + "required": [ + "ConsumerName", + "StreamARN" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesis.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Kinesis::StreamConsumer" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-eventsourcemapping.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-eventsourcemapping.json new file mode 100644 index 0000000000..69df465d44 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-eventsourcemapping.json @@ -0,0 +1,416 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_lambda_eventsourcemapping/eventsourcearn_sqs_exclusive", + "aws_lambda_eventsourcemapping/eventsourcearn_stream_inclusive" + ], + "createOnlyProperties": [ + "/properties/EventSourceArn", + "/properties/StartingPosition", + "/properties/StartingPositionTimestamp", + "/properties/SelfManagedEventSource", + "/properties/AmazonManagedKafkaEventSourceConfig", + "/properties/SelfManagedKafkaEventSourceConfig" + ], + "definitions": { + "AmazonManagedKafkaEventSourceConfig": { + "additionalProperties": false, + "description": "Specific configuration settings for an MSK event source.", + "properties": { + "ConsumerGroupId": { + "$ref": "#/definitions/ConsumerGroupId", + "description": "The identifier for the Kafka Consumer Group to join." + } + }, + "type": "object" + }, + "ConsumerGroupId": { + "description": "The identifier for the Kafka Consumer Group to join.", + "maxLength": 200, + "minLength": 1, + "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", + "type": "string" + }, + "DestinationConfig": { + "additionalProperties": false, + "description": "(Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded records.", + "properties": { + "OnFailure": { + "$ref": "#/definitions/OnFailure", + "description": "The destination configuration for failed invocations." + } + }, + "type": "object" + }, + "DocumentDBEventSourceConfig": { + "additionalProperties": false, + "description": "Document db event source config.", + "properties": { + "CollectionName": { + "description": "The collection name to connect to.", + "maxLength": 57, + "minLength": 1, + "type": "string" + }, + "DatabaseName": { + "description": "The database name to connect to.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "FullDocument": { + "description": "Include full document in change stream response. The default option will only send the changes made to documents to Lambda. If you want the complete document sent to Lambda, set this to UpdateLookup.", + "enum": [ + "UpdateLookup", + "Default" + ], + "type": "string" + } + }, + "type": "object" + }, + "Endpoints": { + "additionalProperties": false, + "description": "The endpoints used by AWS Lambda to access a self-managed event source.", + "properties": { + "KafkaBootstrapServers": { + "description": "A list of Kafka server endpoints.", + "items": { + "description": "The URL of a Kafka server.", + "maxLength": 300, + "minLength": 1, + "pattern": "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}", + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Filter": { + "additionalProperties": false, + "description": "The filter object that defines parameters for ESM filtering.", + "properties": { + "Pattern": { + "description": "The filter pattern that defines which events should be passed for invocations.", + "maxLength": 4096, + "minLength": 0, + "pattern": ".*", + "type": "string" + } + }, + "type": "object" + }, + "FilterCriteria": { + "additionalProperties": false, + "description": "The filter criteria to control event filtering.", + "properties": { + "Filters": { + "description": "List of filters of this FilterCriteria", + "items": { + "$ref": "#/definitions/Filter" + }, + "maxItems": 20, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "MaximumConcurrency": { + "description": "The maximum number of concurrent functions that an event source can invoke.", + "maximum": 1000, + "minimum": 2, + "type": "integer" + }, + "OnFailure": { + "additionalProperties": false, + "description": "A destination for events that failed processing.", + "properties": { + "Destination": { + "description": "The Amazon Resource Name (ARN) of the destination resource.", + "maxLength": 1024, + "minLength": 12, + "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso)?(-isob)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfig": { + "additionalProperties": false, + "description": "The scaling configuration for the event source.", + "properties": { + "MaximumConcurrency": { + "$ref": "#/definitions/MaximumConcurrency", + "description": "The maximum number of concurrent functions that the event source can invoke." + } + }, + "type": "object" + }, + "SelfManagedEventSource": { + "additionalProperties": false, + "description": "The configuration used by AWS Lambda to access a self-managed event source.", + "properties": { + "Endpoints": { + "$ref": "#/definitions/Endpoints", + "description": "The endpoints for a self-managed event source." + } + }, + "type": "object" + }, + "SelfManagedKafkaEventSourceConfig": { + "additionalProperties": false, + "description": "Specific configuration settings for a Self-Managed Apache Kafka event source.", + "properties": { + "ConsumerGroupId": { + "$ref": "#/definitions/ConsumerGroupId", + "description": "The identifier for the Kafka Consumer Group to join." + } + }, + "type": "object" + }, + "SourceAccessConfiguration": { + "additionalProperties": false, + "description": "The configuration used by AWS Lambda to access event source", + "properties": { + "Type": { + "description": "The type of source access configuration.", + "enum": [ + "BASIC_AUTH", + "VPC_SUBNET", + "VPC_SECURITY_GROUP", + "SASL_SCRAM_512_AUTH", + "SASL_SCRAM_256_AUTH", + "VIRTUAL_HOST", + "CLIENT_CERTIFICATE_TLS_AUTH", + "SERVER_ROOT_CA_CERTIFICATE" + ], + "type": "string" + }, + "URI": { + "description": "The URI for the source access configuration resource.", + "maxLength": 200, + "minLength": 1, + "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Lambda::EventSourceMapping", + "handlers": { + "create": { + "permissions": [ + "lambda:CreateEventSourceMapping", + "lambda:GetEventSourceMapping" + ] + }, + "delete": { + "permissions": [ + "lambda:DeleteEventSourceMapping", + "lambda:GetEventSourceMapping" + ] + }, + "list": { + "permissions": [ + "lambda:ListEventSourceMappings" + ] + }, + "read": { + "permissions": [ + "lambda:GetEventSourceMapping" + ] + }, + "update": { + "permissions": [ + "lambda:UpdateEventSourceMapping", + "lambda:GetEventSourceMapping" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonManagedKafkaEventSourceConfig": { + "$ref": "#/definitions/AmazonManagedKafkaEventSourceConfig", + "description": "Specific configuration settings for an MSK event source." + }, + "BatchSize": { + "description": "The maximum number of items to retrieve in a single batch.", + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "BisectBatchOnFunctionError": { + "description": "(Streams) If the function returns an error, split the batch in two and retry.", + "type": "boolean" + }, + "DestinationConfig": { + "$ref": "#/definitions/DestinationConfig", + "description": "(Streams) An Amazon SQS queue or Amazon SNS topic destination for discarded records." + }, + "DocumentDBEventSourceConfig": { + "$ref": "#/definitions/DocumentDBEventSourceConfig", + "description": "Document db event source config." + }, + "Enabled": { + "description": "Disables the event source mapping to pause polling and invocation.", + "type": "boolean" + }, + "EventSourceArn": { + "description": "The Amazon Resource Name (ARN) of the event source.", + "maxLength": 1024, + "minLength": 12, + "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso)?(-isob)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", + "type": "string" + }, + "FilterCriteria": { + "$ref": "#/definitions/FilterCriteria", + "description": "The filter criteria to control event filtering." + }, + "FunctionName": { + "description": "The name of the Lambda function.", + "maxLength": 140, + "minLength": 1, + "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?(-iso)?(-isob)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?", + "type": "string" + }, + "FunctionResponseTypes": { + "description": "(Streams) A list of response types supported by the function.", + "items": { + "enum": [ + "ReportBatchItemFailures" + ], + "type": "string" + }, + "maxLength": 1, + "minLength": 0, + "type": "array", + "uniqueItems": true + }, + "Id": { + "description": "Event Source Mapping Identifier UUID.", + "maxLength": 36, + "minLength": 36, + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + }, + "MaximumBatchingWindowInSeconds": { + "description": "(Streams) The maximum amount of time to gather records before invoking the function, in seconds.", + "maximum": 300, + "minimum": 0, + "type": "integer" + }, + "MaximumRecordAgeInSeconds": { + "description": "(Streams) The maximum age of a record that Lambda sends to a function for processing.", + "maximum": 604800, + "minimum": -1, + "type": "integer" + }, + "MaximumRetryAttempts": { + "description": "(Streams) The maximum number of times to retry when the function returns an error.", + "maximum": 10000, + "minimum": -1, + "type": "integer" + }, + "ParallelizationFactor": { + "description": "(Streams) The number of batches to process from each shard concurrently.", + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "Queues": { + "description": "(ActiveMQ) A list of ActiveMQ queues.", + "items": { + "maxLength": 1000, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ScalingConfig": { + "$ref": "#/definitions/ScalingConfig", + "description": "The scaling configuration for the event source." + }, + "SelfManagedEventSource": { + "$ref": "#/definitions/SelfManagedEventSource", + "description": "Self-managed event source endpoints." + }, + "SelfManagedKafkaEventSourceConfig": { + "$ref": "#/definitions/SelfManagedKafkaEventSourceConfig", + "description": "Specific configuration settings for a Self-Managed Apache Kafka event source." + }, + "SourceAccessConfigurations": { + "description": "A list of SourceAccessConfiguration.", + "items": { + "$ref": "#/definitions/SourceAccessConfiguration" + }, + "maxItems": 22, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "StartingPosition": { + "description": "The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB Streams sources.", + "enum": [ + "TRIM_HORIZON", + "LATEST", + "AT_TIMESTAMP" + ], + "maxLength": 12, + "minLength": 6, + "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", + "type": "string" + }, + "StartingPositionTimestamp": { + "description": "With StartingPosition set to AT_TIMESTAMP, the time from which to start reading, in Unix time seconds.", + "type": "number" + }, + "Topics": { + "description": "(Kafka) A list of Kafka topics.", + "items": { + "maxLength": 249, + "minLength": 1, + "pattern": "^[^.]([a-zA-Z0-9\\-_.]+)", + "type": "string" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TumblingWindowInSeconds": { + "description": "(Streams) Tumbling window (non-overlapping time window) duration to perform aggregations.", + "maximum": 900, + "minimum": 0, + "type": "integer" + } + }, + "propertyTransform": { + "/properties/StartingPositionTimestamp": "StartingPositionTimestamp * 1000" + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Lambda::EventSourceMapping" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-version.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-version.json new file mode 100644 index 0000000000..7c2fd7be47 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-version.json @@ -0,0 +1,163 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FunctionName", + "/properties/Description", + "/properties/CodeSha256", + "/properties/ProvisionedConcurrencyConfig", + "/properties/RuntimePolicy" + ], + "definitions": { + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "description": "A provisioned concurrency configuration for a function's version.", + "properties": { + "ProvisionedConcurrentExecutions": { + "description": "The amount of provisioned concurrency to allocate for the version.", + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "RuntimePolicy": { + "additionalProperties": false, + "description": "Runtime Management Config of a function.", + "properties": { + "RuntimeVersionArn": { + "description": "The ARN of the runtime the function is configured to use. If the runtime update mode is manual, the ARN is returned, otherwise null is returned.", + "maxLength": 2048, + "minLength": 26, + "pattern": "^arn:(aws[a-zA-Z-]*):lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}::runtime:.+$", + "type": "string" + }, + "UpdateRuntimeOn": { + "description": "The runtime update mode.", + "type": "string" + } + }, + "required": [ + "UpdateRuntimeOn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Lambda::Version", + "handlers": { + "create": { + "permissions": [ + "lambda:PublishVersion", + "lambda:GetFunctionConfiguration", + "lambda:PutProvisionedConcurrencyConfig", + "lambda:GetProvisionedConcurrencyConfig", + "lambda:PutRuntimeManagementConfig", + "lambda:GetRuntimeManagementConfig", + "lambda:GetPolicy", + "lambda:AddPermission", + "lambda:RemovePermission", + "lambda:GetResourcePolicy", + "lambda:PutResourcePolicy" + ], + "timeoutInMinutes": 180 + }, + "delete": { + "permissions": [ + "lambda:GetFunctionConfiguration", + "lambda:DeleteFunction" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FunctionName": { + "description": "The name of the Lambda function, version, or alias.", + "maxLength": 140, + "minLength": 1, + "pattern": "^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + } + }, + "required": [ + "FunctionName" + ] + }, + "permissions": [ + "lambda:ListVersionsByFunction" + ] + }, + "read": { + "permissions": [ + "lambda:GetFunctionConfiguration", + "lambda:GetProvisionedConcurrencyConfig", + "lambda:GetRuntimeManagementConfig" + ] + }, + "update": { + "permissions": [ + "lambda:GetPolicy", + "lambda:AddPermission", + "lambda:RemovePermission", + "lambda:GetResourcePolicy", + "lambda:PutResourcePolicy", + "lambda:DeleteResourcePolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionArn" + ], + "properties": { + "CodeSha256": { + "description": "Only publish a version if the hash value matches the value that's specified. Use this option to avoid publishing a version if the function code has changed since you last updated it. Updates are not supported for this property.", + "type": "string" + }, + "Description": { + "description": "A description for the version to override the description in the function configuration. Updates are not supported for this property.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "FunctionArn": { + "description": "The ARN of the version.", + "type": "string" + }, + "FunctionName": { + "description": "The name of the Lambda function.", + "maxLength": 140, + "minLength": 1, + "pattern": "^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration", + "description": "Specifies a provisioned concurrency configuration for a function's version. Updates are not supported for this property." + }, + "RuntimePolicy": { + "$ref": "#/definitions/RuntimePolicy", + "description": "Specifies the runtime management configuration of a function. Displays runtimeVersionArn only for Manual." + }, + "Version": { + "description": "The version number.", + "type": "string" + } + }, + "propertyTransform": { + "/properties/FunctionName": "$split(FunctionName, \":\")[-1] $OR FunctionName" + }, + "readOnlyProperties": [ + "/properties/Version", + "/properties/FunctionArn" + ], + "required": [ + "FunctionName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Lambda::Version" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-instance.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-instance.json new file mode 100644 index 0000000000..bb049a1011 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-instance.json @@ -0,0 +1,299 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tenancy", + "/properties/VirtualizationType", + "/properties/TimeBasedAutoScaling", + "/properties/RootDeviceType", + "/properties/AutoScalingType", + "/properties/StackId", + "/properties/AvailabilityZone", + "/properties/SubnetId", + "/properties/BlockDeviceMappings", + "/properties/EbsOptimized" + ], + "definitions": { + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "TimeBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "Friday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Monday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Saturday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Sunday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Thursday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Tuesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Wednesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Instance", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "AmiId": { + "type": "string" + }, + "Architecture": { + "type": "string" + }, + "AutoScalingType": { + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticIps": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Hostname": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "LayerIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Os": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateIp": { + "type": "string" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RootDeviceType": { + "type": "string" + }, + "SshKeyName": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tenancy": { + "type": "string" + }, + "TimeBasedAutoScaling": { + "$ref": "#/definitions/TimeBasedAutoScaling" + }, + "VirtualizationType": { + "type": "string" + }, + "Volumes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/PublicIp", + "/properties/Id", + "/properties/PublicDnsName", + "/properties/PrivateDnsName", + "/properties/PrivateIp" + ], + "required": [ + "LayerIds", + "InstanceType", + "StackId" + ], + "typeName": "AWS::OpsWorks::Instance" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-layer.json new file mode 100644 index 0000000000..0c7549d975 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-layer.json @@ -0,0 +1,262 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StackId", + "/properties/Type" + ], + "definitions": { + "AutoScalingThresholds": { + "additionalProperties": false, + "properties": { + "CpuThreshold": { + "type": "number" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "InstanceCount": { + "type": "integer" + }, + "LoadThreshold": { + "type": "number" + }, + "MemoryThreshold": { + "type": "number" + }, + "ThresholdsWaitTime": { + "type": "integer" + } + }, + "type": "object" + }, + "LifecycleEventConfiguration": { + "additionalProperties": false, + "properties": { + "ShutdownEventConfiguration": { + "$ref": "#/definitions/ShutdownEventConfiguration" + } + }, + "type": "object" + }, + "LoadBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "DownScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + }, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + } + }, + "type": "object" + }, + "Recipes": { + "additionalProperties": false, + "properties": { + "Configure": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Deploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Setup": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Shutdown": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Undeploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ShutdownEventConfiguration": { + "additionalProperties": false, + "properties": { + "DelayUntilElbConnectionsDrained": { + "type": "boolean" + }, + "ExecutionTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "MountPoint": { + "type": "string" + }, + "NumberOfDisks": { + "type": "integer" + }, + "RaidLevel": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Layer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomInstanceProfileArn": { + "type": "string" + }, + "CustomJson": { + "type": "object" + }, + "CustomRecipes": { + "$ref": "#/definitions/Recipes" + }, + "CustomSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "$ref": "#/definitions/LifecycleEventConfiguration" + }, + "LoadBasedAutoScaling": { + "$ref": "#/definitions/LoadBasedAutoScaling" + }, + "Name": { + "type": "string" + }, + "Packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Shortname": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/VolumeConfiguration" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EnableAutoHealing", + "Type", + "AutoAssignElasticIps", + "Shortname", + "AutoAssignPublicIps", + "Name", + "StackId" + ], + "typeName": "AWS::OpsWorks::Layer" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-stack.json new file mode 100644 index 0000000000..f3862f3e29 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-stack.json @@ -0,0 +1,230 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CloneAppIds", + "/properties/ClonePermissions", + "/properties/ServiceRoleArn", + "/properties/VpcId", + "/properties/SourceStackId" + ], + "definitions": { + "ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "RdsDbInstanceArn", + "DbUser" + ], + "type": "object" + }, + "Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "VpcId": [ + "DefaultSubnetId" + ] + }, + "description": "Resource Type definition for AWS::OpsWorks::Stack", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/ElasticIp" + }, + "type": "array", + "uniqueItems": true + }, + "HostnameTheme": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/RdsDbInstance" + }, + "type": "array", + "uniqueItems": true + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DefaultInstanceProfileArn", + "ServiceRoleArn", + "Name" + ], + "typeName": "AWS::OpsWorks::Stack" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..4e38e011ab --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json @@ -0,0 +1,238 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/MasterUsername", + "/properties/SourceDBClusterIdentifier", + "/properties/DBClusterIdentifier", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/AvailabilityZones", + "/properties/DBSubnetGroupName", + "/properties/SnapshotIdentifier", + "/properties/RestoreType", + "/properties/UseLatestRestorableTime", + "/properties/SourceRegion", + "/properties/StorageEncrypted" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "Resource Type definition for AWS::RDS::DBCluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EndpointAddress": { + "type": "string" + }, + "EndpointPort": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpointAddress": { + "type": "string" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/ReadEndpoint.Address", + "/properties/Endpoint.Port", + "/properties/Endpoint.Address" + ], + "required": [ + "Engine" + ], + "typeName": "AWS::RDS::DBCluster" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbclusterparametergroup.json new file mode 100644 index 0000000000..567e53fcad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbclusterparametergroup.json @@ -0,0 +1,59 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Family", + "/properties/Description" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::RDS::DBClusterParameterGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "Parameters", + "Family" + ], + "typeName": "AWS::RDS::DBClusterParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json new file mode 100644 index 0000000000..e7c19469cf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbinstance.json @@ -0,0 +1,316 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/MasterUsername", + "/properties/Port", + "/properties/Timezone", + "/properties/DBClusterIdentifier", + "/properties/DBInstanceIdentifier", + "/properties/DBSubnetGroupName", + "/properties/SourceDBInstanceIdentifier", + "/properties/PubliclyAccessible", + "/properties/CharacterSetName", + "/properties/DBName", + "/properties/SourceRegion", + "/properties/AvailabilityZone", + "/properties/StorageEncrypted", + "/properties/DBSnapshotIdentifier" + ], + "definitions": { + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "FeatureName" + ], + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "Resource Type definition for AWS::RDS::DBInstance", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocatedStorage": { + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "BackupRetentionPeriod": { + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "type": "string" + }, + "CharacterSetName": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "type": "string" + }, + "DBInstanceIdentifier": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "DBParameterGroupName": { + "type": "string" + }, + "DBSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "DBSnapshotIdentifier": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeleteAutomatedBackups": { + "type": "boolean" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnablePerformanceInsights": { + "type": "boolean" + }, + "EndpointAddress": { + "type": "string" + }, + "EndpointPort": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "LicenseModel": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "MaxAllocatedStorage": { + "type": "integer" + }, + "MonitoringInterval": { + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "OptionGroupName": { + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "enum": [ + 7, + 31, + 62, + 93, + 124, + 155, + 186, + 217, + 248, + 279, + 310, + 341, + 372, + 403, + 434, + 465, + 496, + 527, + 558, + 589, + 620, + 651, + 682, + 713, + 731 + ], + "type": "integer" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ProcessorFeatures": { + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array", + "uniqueItems": true + }, + "PromotionTier": { + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SourceDBInstanceIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Timezone": { + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "type": "boolean" + }, + "VPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Endpoint.Port", + "/properties/Endpoint.Address" + ], + "required": [ + "DBInstanceClass" + ], + "typeName": "AWS::RDS::DBInstance" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbparametergroup.json new file mode 100644 index 0000000000..6c74fcc2a7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbparametergroup.json @@ -0,0 +1,59 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::RDS::DBParameterGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "Family" + ], + "typeName": "AWS::RDS::DBParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbsubnetgroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbsubnetgroup.json new file mode 100644 index 0000000000..12760b6294 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbsubnetgroup.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DBSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::RDS::DBSubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "typeName": "AWS::RDS::DBSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-eventsubscription.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-eventsubscription.json new file mode 100644 index 0000000000..8f2e6d1279 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-eventsubscription.json @@ -0,0 +1,45 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SnsTopicArn" + ], + "description": "Resource Type definition for AWS::RDS::EventSubscription", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SnsTopicArn" + ], + "typeName": "AWS::RDS::EventSubscription" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-optiongroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-optiongroup.json new file mode 100644 index 0000000000..a55967ce53 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-optiongroup.json @@ -0,0 +1,120 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/EngineName", + "/properties/OptionConfigurations", + "/properties/MajorEngineVersion", + "/properties/OptionGroupDescription" + ], + "definitions": { + "OptionConfiguration": { + "additionalProperties": false, + "properties": { + "DBSecurityGroupMemberships": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "OptionName": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/OptionSetting" + }, + "type": "array", + "uniqueItems": true + }, + "OptionVersion": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "VpcSecurityGroupMemberships": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "OptionName" + ], + "type": "object" + }, + "OptionSetting": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::RDS::OptionGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "EngineName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MajorEngineVersion": { + "type": "string" + }, + "OptionConfigurations": { + "items": { + "$ref": "#/definitions/OptionConfiguration" + }, + "type": "array", + "uniqueItems": false + }, + "OptionGroupDescription": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "OptionGroupDescription", + "OptionConfigurations", + "MajorEngineVersion", + "EngineName" + ], + "typeName": "AWS::RDS::OptionGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-redshift-cluster.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-redshift-cluster.json new file mode 100644 index 0000000000..370f799510 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-redshift-cluster.json @@ -0,0 +1,195 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/MasterUsername", + "/properties/OwnerAccount", + "/properties/SnapshotIdentifier", + "/properties/Encrypted", + "/properties/Port", + "/properties/DBName", + "/properties/SnapshotClusterIdentifier", + "/properties/AvailabilityZone", + "/properties/ClusterSubnetGroupName", + "/properties/ClusterIdentifier", + "/properties/ElasticIp" + ], + "definitions": { + "LoggingProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllowVersionUpgrade": { + "type": "boolean" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "AvailabilityZone": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterParameterGroupName": { + "type": "string" + }, + "ClusterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ClusterSubnetGroupName": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "ClusterVersion": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "ElasticIp": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Endpoint": { + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "EndpointAddress": { + "type": "string" + }, + "EndpointPort": { + "type": "string" + }, + "HsmClientCertificateIdentifier": { + "type": "string" + }, + "HsmConfigurationIdentifier": { + "type": "string" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/LoggingProperties" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "NodeType": { + "cfnRegionSchema": "aws_redshift_cluster/nodetype_enum", + "type": "string" + }, + "NumberOfNodes": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "OwnerAccount": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Endpoint/Port", + "/properties/Endpoint/Address" + ], + "required": [ + "MasterUserPassword", + "NodeType", + "MasterUsername", + "DBName", + "ClusterType" + ], + "typeName": "AWS::Redshift::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-redshift-clusterparametergroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-redshift-clusterparametergroup.json new file mode 100644 index 0000000000..d05a398a2c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-redshift-clusterparametergroup.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ParameterGroupFamily", + "/properties/Description" + ], + "definitions": { + "Parameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterParameterGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ParameterGroupFamily": { + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/Parameter" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "ParameterGroupFamily" + ], + "typeName": "AWS::Redshift::ClusterParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-redshift-clustersubnetgroup.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-redshift-clustersubnetgroup.json new file mode 100644 index 0000000000..855e1344e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-redshift-clustersubnetgroup.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterSubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::Redshift::ClusterSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-route53-healthcheck.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-route53-healthcheck.json new file mode 100644 index 0000000000..aae9580ade --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-route53-healthcheck.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "definitions": { + "AlarmIdentifier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region", + "Name" + ], + "type": "object" + }, + "HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "$ref": "#/definitions/AlarmIdentifier" + }, + "ChildHealthChecks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableSNI": { + "type": "boolean" + }, + "FailureThreshold": { + "type": "integer" + }, + "FullyQualifiedDomainName": { + "type": "string" + }, + "HealthThreshold": { + "type": "integer" + }, + "IPAddress": { + "type": "string" + }, + "InsufficientDataHealthStatus": { + "type": "string" + }, + "Inverted": { + "type": "boolean" + }, + "MeasureLatency": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RequestInterval": { + "type": "integer" + }, + "ResourcePath": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "HealthCheckTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HealthCheck", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HealthCheckConfig": { + "$ref": "#/definitions/HealthCheckConfig", + "cfnSchema": [ + "aws_route53_healthcheck/healthcheckconfig_type_inclusive" + ] + }, + "HealthCheckTags": { + "items": { + "$ref": "#/definitions/HealthCheckTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "HealthCheckConfig" + ], + "typeName": "AWS::Route53::HealthCheck" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4f589ca0c9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-route53-hostedzone.json @@ -0,0 +1,108 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "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": [ + "VPCRegion", + "VPCId" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HostedZone", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "required": [ + "Name" + ], + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-secretsmanager-secret.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-secretsmanager-secret.json new file mode 100644 index 0000000000..3f7d28e857 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-secretsmanager-secret.json @@ -0,0 +1,117 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "GenerateSecretString": { + "additionalProperties": false, + "properties": { + "ExcludeCharacters": { + "type": "string" + }, + "ExcludeLowercase": { + "type": "boolean" + }, + "ExcludeNumbers": { + "type": "boolean" + }, + "ExcludePunctuation": { + "type": "boolean" + }, + "ExcludeUppercase": { + "type": "boolean" + }, + "GenerateStringKey": { + "type": "string" + }, + "IncludeSpace": { + "type": "boolean" + }, + "PasswordLength": { + "type": "integer" + }, + "RequireEachIncludedType": { + "type": "boolean" + }, + "SecretStringTemplate": { + "type": "string" + } + }, + "type": "object" + }, + "ReplicaRegion": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SecretsManager::Secret", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "GenerateSecretString": { + "$ref": "#/definitions/GenerateSecretString" + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReplicaRegions": { + "items": { + "$ref": "#/definitions/ReplicaRegion" + }, + "type": "array", + "uniqueItems": false + }, + "SecretString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SecretsManager::Secret" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-secretsmanager-secrettargetattachment.json new file mode 100644 index 0000000000..ace966c437 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-secretsmanager-secrettargetattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretId": { + "type": "string" + }, + "TargetId": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecretId", + "TargetType", + "TargetId" + ], + "typeName": "AWS::SecretsManager::SecretTargetAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-sns-topicpolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-sns-topicpolicy.json new file mode 100644 index 0000000000..9b2b9f305c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-sns-topicpolicy.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SNS::TopicPolicy", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "Topics": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Topics", + "PolicyDocument" + ], + "typeName": "AWS::SNS::TopicPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-sqs-queuepolicy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-sqs-queuepolicy.json new file mode 100644 index 0000000000..77e680df7a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-sqs-queuepolicy.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "description": "The ``AWS::SQS::QueuePolicy`` type applies a policy to SQS queues. For an example snippet, see [Declaring an policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sqs-policy) in the *User Guide*.", + "handlers": { + "create": { + "permissions": [ + "sqs:SetQueueAttributes" + ] + }, + "delete": { + "permissions": [ + "sqs:SetQueueAttributes" + ] + }, + "update": { + "permissions": [ + "sqs:SetQueueAttributes" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "description": "", + "type": "string" + }, + "PolicyDocument": { + "description": "A policy document that contains the permissions for the specified SQS queues. For more information about SQS policies, see [Using custom policies with the access policy language](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) in the *Developer Guide*.", + "type": [ + "object", + "string" + ] + }, + "Queues": { + "description": "The URLs of the queues to which you want to add the policy. You can use the ``Ref`` function to specify an ``AWS::SQS::Queue`` resource.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyDocument", + "Queues" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sqs.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::SQS::QueuePolicy" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ssm-document.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ssm-document.json new file mode 100644 index 0000000000..889f020a70 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ssm-document.json @@ -0,0 +1,237 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Content", + "/properties/Attachments", + "/properties/VersionName", + "/properties/DocumentFormat", + "/properties/TargetType", + "/properties/Requires" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/DocumentType" + ], + "definitions": { + "AttachmentsSource": { + "additionalProperties": false, + "properties": { + "Key": { + "description": "The key of a key-value pair that identifies the location of an attachment to a document.", + "enum": [ + "SourceUrl", + "S3FileUrl", + "AttachmentReference" + ], + "type": "string" + }, + "Name": { + "description": "The name of the document attachment file.", + "maxLength": 128, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Values": { + "description": "The value of a key-value pair that identifies the location of an attachment to a document. The format for Value depends on the type of key you specify.", + "insertionOrder": false, + "items": { + "maxLength": 100000, + "minLength": 1, + "type": "string" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "DocumentRequires": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the required SSM document. The name can be an Amazon Resource Name (ARN).", + "maxLength": 200, + "pattern": "^[a-zA-Z0-9_\\-.:/]{3,200}$", + "type": "string" + }, + "Version": { + "description": "The document version required by the current document.", + "maxLength": 8, + "pattern": "([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "description": "The name of the tag.", + "maxLength": 128, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "description": "The value of the tag.", + "maxLength": 256, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "The AWS::SSM::Document resource is an SSM document in AWS Systems Manager that defines the actions that Systems Manager performs, which can be used to set up and run commands on your instances.", + "handlers": { + "create": { + "permissions": [ + "ssm:CreateDocument", + "ssm:GetDocument", + "ssm:AddTagsToResource", + "ssm:ListTagsForResource", + "s3:GetObject", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "ssm:DeleteDocument", + "ssm:GetDocument" + ] + }, + "list": { + "permissions": [ + "ssm:ListDocuments" + ] + }, + "read": { + "permissions": [ + "ssm:GetDocument", + "ssm:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ssm:UpdateDocument", + "s3:GetObject", + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource", + "ssm:ListTagsForResource", + "iam:PassRole", + "ssm:UpdateDocumentDefaultVersion", + "ssm:DescribeDocument" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Attachments": { + "description": "A list of key and value pairs that describe attachments to a version of a document.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AttachmentsSource" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "Content": { + "description": "The content for the Systems Manager document in JSON, YAML or String format.", + "type": [ + "object", + "string" + ] + }, + "DocumentFormat": { + "default": "JSON", + "description": "Specify the document format for the request. The document format can be either JSON or YAML. JSON is the default format.", + "enum": [ + "YAML", + "JSON", + "TEXT" + ], + "type": "string" + }, + "DocumentType": { + "description": "The type of document to create.", + "enum": [ + "ApplicationConfiguration", + "ApplicationConfigurationSchema", + "Automation", + "Automation.ChangeTemplate", + "ChangeCalendar", + "CloudFormation", + "Command", + "DeploymentStrategy", + "Package", + "Policy", + "ProblemAnalysis", + "ProblemAnalysisTemplate", + "Session", + "OpsPack" + ], + "type": "string" + }, + "Name": { + "description": "A name for the Systems Manager document.", + "pattern": "^[a-zA-Z0-9_\\-.]{3,128}$", + "type": "string" + }, + "Requires": { + "description": "A list of SSM documents required by a document. For example, an ApplicationConfiguration document requires an ApplicationConfigurationSchema document.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/DocumentRequires" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "description": "Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 1000, + "type": "array" + }, + "TargetType": { + "description": "Specify a target type to define the kinds of resources the document can run on.", + "pattern": "^\\/[\\w\\.\\-\\:\\/]*$", + "type": "string" + }, + "UpdateMethod": { + "default": "Replace", + "description": "Update method - when set to 'Replace', the update will replace the existing document; when set to 'NewVersion', the update will create a new version.", + "enum": [ + "Replace", + "NewVersion" + ], + "type": "string" + }, + "VersionName": { + "description": "An optional field specifying the version of the artifact you are creating with the document. This value is unique across all versions of a document, and cannot be changed.", + "pattern": "^[a-zA-Z0-9_\\-.]{1,128}$", + "type": "string" + } + }, + "required": [ + "Content" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ssm", + "tagging": { + "taggable": true + }, + "typeName": "AWS::SSM::Document", + "writeOnlyProperties": [ + "/properties/UpdateMethod", + "/properties/Attachments" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ssm-patchbaseline.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ssm-patchbaseline.json new file mode 100644 index 0000000000..d8441351cf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ssm-patchbaseline.json @@ -0,0 +1,369 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/OperatingSystem" + ], + "definitions": { + "PatchFilter": { + "additionalProperties": false, + "description": "Defines which patches should be included in a patch baseline.", + "properties": { + "Key": { + "enum": [ + "ADVISORY_ID", + "ARCH", + "BUGZILLA_ID", + "CLASSIFICATION", + "CVE_ID", + "EPOCH", + "MSRC_SEVERITY", + "NAME", + "PATCH_ID", + "PATCH_SET", + "PRIORITY", + "PRODUCT", + "PRODUCT_FAMILY", + "RELEASE", + "REPOSITORY", + "SECTION", + "SECURITY", + "SEVERITY", + "VERSION" + ], + "type": "string" + }, + "Values": { + "items": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "PatchFilterGroup": { + "additionalProperties": false, + "description": "The patch filter group that defines the criteria for the rule.", + "properties": { + "PatchFilters": { + "items": { + "$ref": "#/definitions/PatchFilter" + }, + "maxItems": 5, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "PatchSource": { + "additionalProperties": false, + "description": "Information about the patches to use to update the instances, including target operating systems and source repository. Applies to Linux instances only.", + "properties": { + "Configuration": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z0-9_\\-.]{3,50}$", + "type": "string" + }, + "Products": { + "items": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "Rule": { + "additionalProperties": false, + "description": "Defines an approval rule for a patch baseline.", + "insertionOrder": false, + "properties": { + "ApproveAfterDays": { + "maximum": 360, + "minimum": 0, + "type": "integer" + }, + "ApproveUntilDate": { + "maxLength": 10, + "minLength": 0, + "type": "string" + }, + "ComplianceLevel": { + "enum": [ + "CRITICAL", + "HIGH", + "INFORMATIONAL", + "LOW", + "MEDIUM", + "UNSPECIFIED" + ], + "type": "string" + }, + "EnableNonSecurity": { + "default": false, + "type": "boolean" + }, + "PatchFilterGroup": { + "$ref": "#/definitions/PatchFilterGroup" + } + }, + "type": "object" + }, + "RuleGroup": { + "additionalProperties": false, + "description": "A set of rules defining the approval rules for a patch baseline.", + "insertionOrder": false, + "properties": { + "PatchRules": { + "items": { + "$ref": "#/definitions/Rule" + }, + "maxItems": 10, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "Metadata that you assign to your AWS resources.", + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SSM::PatchBaseline", + "handlers": { + "create": { + "permissions": [ + "ssm:CreatePatchBaseline", + "ssm:RegisterPatchBaselineForPatchGroup", + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource", + "ssm:ListTagsForResource", + "ssm:GetDefaultPatchBaseline", + "ssm:RegisterDefaultPatchBaseline" + ] + }, + "delete": { + "permissions": [ + "ssm:DeletePatchBaseline", + "ssm:GetPatchBaseline", + "ssm:DeregisterPatchBaselineForPatchGroup" + ] + }, + "list": { + "permissions": [ + "ssm:DescribePatchBaselines", + "ssm:GetDefaultPatchBaseline", + "ssm:GetPatchBaseline", + "ssm:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "ssm:GetDefaultPatchBaseline", + "ssm:GetPatchBaseline", + "ssm:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ssm:UpdatePatchBaseline", + "ssm:DeregisterPatchBaselineForPatchGroup", + "ssm:AddTagsToResource", + "ssm:RemoveTagsFromResource", + "ssm:ListTagsForResource", + "ssm:GetDefaultPatchBaseline", + "ssm:RegisterDefaultPatchBaseline" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApprovalRules": { + "$ref": "#/definitions/RuleGroup" + }, + "ApprovedPatches": { + "description": "A list of explicitly approved patches for the baseline.", + "insertionOrder": false, + "items": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "ApprovedPatchesComplianceLevel": { + "default": "UNSPECIFIED", + "description": "Defines the compliance level for approved patches. This means that if an approved patch is reported as missing, this is the severity of the compliance violation. The default value is UNSPECIFIED.", + "enum": [ + "CRITICAL", + "HIGH", + "MEDIUM", + "LOW", + "INFORMATIONAL", + "UNSPECIFIED" + ], + "type": "string" + }, + "ApprovedPatchesEnableNonSecurity": { + "default": false, + "description": "Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.", + "type": "boolean" + }, + "DefaultBaseline": { + "default": false, + "description": "Set the baseline as default baseline. Only registering to default patch baseline is allowed.", + "type": "boolean" + }, + "Description": { + "description": "The description of the patch baseline.", + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "GlobalFilters": { + "$ref": "#/definitions/PatchFilterGroup", + "description": "A set of global filters used to include patches in the baseline." + }, + "Id": { + "description": "The ID of the patch baseline.", + "maxLength": 128, + "minLength": 20, + "pattern": "^[a-zA-Z0-9_\\-:/]{20,128}$", + "type": "string" + }, + "Name": { + "description": "The name of the patch baseline.", + "maxLength": 128, + "minLength": 3, + "pattern": "^[a-zA-Z0-9_\\-.]{3,128}$", + "type": "string" + }, + "OperatingSystem": { + "default": "WINDOWS", + "description": "Defines the operating system the patch baseline applies to. The Default value is WINDOWS.", + "enum": [ + "WINDOWS", + "AMAZON_LINUX", + "AMAZON_LINUX_2", + "AMAZON_LINUX_2022", + "AMAZON_LINUX_2023", + "UBUNTU", + "REDHAT_ENTERPRISE_LINUX", + "SUSE", + "CENTOS", + "ORACLE_LINUX", + "DEBIAN", + "MACOS", + "RASPBIAN", + "ROCKY_LINUX" + ], + "type": "string" + }, + "PatchGroups": { + "description": "PatchGroups is used to associate instances with a specific patch baseline", + "items": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "RejectedPatches": { + "description": "A list of explicitly rejected patches for the baseline.", + "insertionOrder": false, + "items": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "RejectedPatchesAction": { + "default": "ALLOW_AS_DEPENDENCY", + "description": "The action for Patch Manager to take on patches included in the RejectedPackages list.", + "enum": [ + "ALLOW_AS_DEPENDENCY", + "BLOCK" + ], + "type": "string" + }, + "Sources": { + "description": "Information about the patches to use to update the instances, including target operating systems and source repository. Applies to Linux instances only.", + "items": { + "$ref": "#/definitions/PatchSource" + }, + "maxItems": 20, + "minItems": 0, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "description": "Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways.", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 1000, + "minItems": 0, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SSM::PatchBaseline" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ssm-resourcedatasync.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ssm-resourcedatasync.json new file mode 100644 index 0000000000..7744425905 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ssm-resourcedatasync.json @@ -0,0 +1,187 @@ +{ + "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" + } + }, + "description": "Resource Type definition for AWS::SSM::ResourceDataSync", + "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/ca_west_1/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-activity.json new file mode 100644 index 0000000000..15981c2a5c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-stepfunctions-activity.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for Activity", + "handlers": { + "create": { + "permissions": [ + "states:CreateActivity", + "states:TagResource" + ] + }, + "delete": { + "permissions": [ + "states:DescribeActivity", + "states:DeleteActivity" + ] + }, + "list": { + "permissions": [ + "states:ListActivities" + ] + }, + "read": { + "permissions": [ + "states:DescribeActivity", + "states:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "states:ListTagsForResource", + "states:TagResource", + "states:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagsEntry" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::StepFunctions::Activity" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-synthetics-canary.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-synthetics-canary.json new file mode 100644 index 0000000000..4cc7d65faa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-synthetics-canary.json @@ -0,0 +1,384 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "ArtifactConfig": { + "additionalProperties": false, + "properties": { + "S3Encryption": { + "$ref": "#/definitions/S3Encryption", + "description": "Encryption configuration for uploading artifacts to S3" + } + }, + "type": "object" + }, + "BaseScreenshot": { + "properties": { + "IgnoreCoordinates": { + "description": "List of coordinates of rectangles to be ignored during visual testing", + "items": { + "description": "Coordinates of a rectangle to be ignored during visual testing", + "type": "string" + }, + "type": "array" + }, + "ScreenshotName": { + "description": "Name of the screenshot to be used as base reference for visual testing", + "type": "string" + } + }, + "required": [ + "ScreenshotName" + ], + "type": "object" + }, + "Code": { + "additionalProperties": false, + "oneOf": [ + { + "required": [ + "S3Bucket", + "S3Key" + ] + }, + { + "required": [ + "Script" + ] + } + ], + "properties": { + "Handler": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + }, + "Script": { + "type": "string" + }, + "SourceLocationArn": { + "type": "string" + } + }, + "required": [ + "Handler" + ], + "type": "object" + }, + "RunConfig": { + "additionalProperties": false, + "properties": { + "ActiveTracing": { + "description": "Enable active tracing if set to true", + "type": "boolean" + }, + "EnvironmentVariables": { + "additionalProperties": false, + "description": "Environment variable key-value pairs.", + "patternProperties": { + "[a-zA-Z][a-zA-Z0-9_]+": { + "type": "string" + } + }, + "type": "object" + }, + "MemoryInMB": { + "description": "Provide maximum memory available for canary in MB", + "type": "integer" + }, + "TimeoutInSeconds": { + "description": "Provide maximum canary timeout per run in seconds", + "type": "integer" + } + }, + "type": "object" + }, + "S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "description": "Encryption mode for encrypting artifacts when uploading to S3. Valid values: SSE_S3 and SSE_KMS.", + "type": "string" + }, + "KmsKeyArn": { + "description": "KMS key Arn for encrypting artifacts when uploading to S3. You must specify KMS key Arn for SSE_KMS encryption mode only.", + "type": "string" + } + }, + "type": "object" + }, + "Schedule": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "string" + }, + "Expression": { + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VPCConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + }, + "VisualReference": { + "additionalProperties": false, + "properties": { + "BaseCanaryRunId": { + "description": "Canary run id to be used as base reference for visual testing", + "type": "string" + }, + "BaseScreenshots": { + "description": "List of screenshots used as base reference for visual testing", + "items": { + "$ref": "#/definitions/BaseScreenshot" + }, + "type": "array" + } + }, + "required": [ + "BaseCanaryRunId" + ], + "type": "object" + } + }, + "deprecatedProperties": [ + "/properties/DeleteLambdaResourcesOnCanaryDeletion" + ], + "description": "Resource Type definition for AWS::Synthetics::Canary", + "handlers": { + "create": { + "permissions": [ + "synthetics:CreateCanary", + "synthetics:StartCanary", + "synthetics:GetCanary", + "synthetics:TagResource", + "s3:CreateBucket", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:PutBucketEncryption", + "s3:PutEncryptionConfiguration", + "s3:GetBucketLocation", + "lambda:CreateFunction", + "lambda:AddPermission", + "lambda:PublishVersion", + "lambda:UpdateFunctionConfiguration", + "lambda:GetFunctionConfiguration", + "lambda:GetLayerVersionByArn", + "lambda:GetLayerVersion", + "lambda:PublishLayerVersion", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "synthetics:DeleteCanary", + "synthetics:GetCanary" + ] + }, + "list": { + "permissions": [ + "synthetics:DescribeCanaries" + ] + }, + "read": { + "permissions": [ + "synthetics:GetCanary", + "synthetics:DescribeCanaries", + "synthetics:ListTagsForResource", + "iam:ListRoles", + "s3:ListAllMyBuckets", + "s3:GetBucketLocation" + ] + }, + "update": { + "permissions": [ + "synthetics:UpdateCanary", + "synthetics:StartCanary", + "synthetics:StopCanary", + "synthetics:GetCanary", + "synthetics:TagResource", + "synthetics:UntagResource", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:PutBucketEncryption", + "s3:PutEncryptionConfiguration", + "s3:GetBucketLocation", + "lambda:AddPermission", + "lambda:PublishVersion", + "lambda:UpdateFunctionConfiguration", + "lambda:GetFunctionConfiguration", + "lambda:GetLayerVersionByArn", + "lambda:GetLayerVersion", + "lambda:PublishLayerVersion", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "ArtifactConfig": { + "$ref": "#/definitions/ArtifactConfig", + "description": "Provide artifact configuration" + }, + "ArtifactS3Location": { + "description": "Provide the s3 bucket output location for test results", + "pattern": "^(s3|S3)://", + "type": "string" + }, + "Code": { + "$ref": "#/definitions/Code", + "description": "Provide the canary script source" + }, + "DeleteLambdaResourcesOnCanaryDeletion": { + "description": "Deletes associated lambda resources created by Synthetics if set to True. Default is False", + "type": "boolean" + }, + "ExecutionRoleArn": { + "description": "Lambda Execution role used to run your canaries", + "type": "string" + }, + "FailureRetentionPeriod": { + "description": "Retention period of failed canary runs represented in number of days", + "type": "integer" + }, + "Id": { + "description": "Id of the canary", + "type": "string" + }, + "Name": { + "description": "Name of the canary.", + "pattern": "^[0-9a-z_\\-]{1,21}$", + "type": "string" + }, + "RunConfig": { + "$ref": "#/definitions/RunConfig", + "description": "Provide canary run configuration" + }, + "RuntimeVersion": { + "description": "Runtime version of Synthetics Library", + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/Schedule", + "description": "Frequency to run your canaries" + }, + "StartCanaryAfterCreation": { + "description": "Runs canary if set to True. Default is False", + "type": "boolean" + }, + "State": { + "description": "State of the canary", + "type": "string" + }, + "SuccessRetentionPeriod": { + "description": "Retention period of successful canary runs represented in number of days", + "type": "integer" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VPCConfig": { + "$ref": "#/definitions/VPCConfig", + "description": "Provide VPC Configuration if enabled." + }, + "VisualReference": { + "$ref": "#/definitions/VisualReference", + "description": "Visual reference configuration for visual testing" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/State" + ], + "required": [ + "Name", + "Code", + "ArtifactS3Location", + "ExecutionRoleArn", + "Schedule", + "RuntimeVersion" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-synthetics", + "tagging": { + "taggable": true + }, + "typeName": "AWS::Synthetics::Canary", + "writeOnlyProperties": [ + "/properties/Code/S3Bucket", + "/properties/Code/S3Key", + "/properties/Code/S3ObjectVersion", + "/properties/Code/Script", + "/properties/DeleteLambdaResourcesOnCanaryDeletion", + "/properties/StartCanaryAfterCreation", + "/properties/RunConfig/EnvironmentVariables", + "/properties/VisualReference" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-ipset.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-ipset.json new file mode 100644 index 0000000000..198879fe09 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-ipset.json @@ -0,0 +1,50 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "IPSetDescriptor": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::IPSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "IPSetDescriptors": { + "items": { + "$ref": "#/definitions/IPSetDescriptor" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "typeName": "AWS::WAF::IPSet" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-rule.json new file mode 100644 index 0000000000..5ae8e6b6b7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-rule.json @@ -0,0 +1,68 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "enum": [ + "IPMatch", + "ByteMatch", + "SqlInjectionMatch", + "GeoMatch", + "SizeConstraint", + "XssMatch", + "RegexMatch" + ], + "type": "string" + } + }, + "required": [ + "Type", + "DataId", + "Negated" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::Rule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/Predicate" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "Name" + ], + "typeName": "AWS::WAF::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-sizeconstraintset.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-sizeconstraintset.json new file mode 100644 index 0000000000..cc2fdb3cd9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-sizeconstraintset.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "type": "integer" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "Size", + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::SizeConstraintSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/SizeConstraint" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SizeConstraints", + "Name" + ], + "typeName": "AWS::WAF::SizeConstraintSet" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-webacl.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-webacl.json new file mode 100644 index 0000000000..d95f27d59b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-webacl.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "ActivatedRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/WafAction" + }, + "Priority": { + "type": "integer" + }, + "RuleId": { + "type": "string" + } + }, + "required": [ + "Priority", + "RuleId" + ], + "type": "object" + }, + "WafAction": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::WebACL", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DefaultAction": { + "$ref": "#/definitions/WafAction" + }, + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ActivatedRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "DefaultAction", + "Name" + ], + "typeName": "AWS::WAF::WebACL" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-xssmatchset.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-xssmatchset.json new file mode 100644 index 0000000000..a7cd951419 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-waf-xssmatchset.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::XssMatchSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/XssMatchTuple" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "XssMatchTuples", + "Name" + ], + "typeName": "AWS::WAF::XssMatchSet" +} 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 0e529f71b6..cc48c5a337 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -22,6 +22,7 @@ "AWS::Config::OrganizationConfigRule", "AWS::Config::ConfigurationRecorder", "AWS::Greengrass::DeviceDefinition", + "AWS::QuickSight::Analysis", "AWS::AppConfig::ExtensionAssociation", "AWS::IoT::TopicRuleDestination", "AWS::Redshift::ClusterSubnetGroup", @@ -35,6 +36,7 @@ "AWS::Budgets::BudgetsAction", "AWS::Logs::ResourcePolicy", "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::QuickSight::DataSource", "AWS::IoT::CACertificate", "AWS::EC2::NetworkAclEntry", "AWS::Transfer::Certificate", @@ -61,6 +63,7 @@ "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", "AWS::IoTAnalytics::Datastore", + "AWS::EKS::AccessEntry", "AWS::ElastiCache::SecurityGroup", "AWS::OpsWorks::Layer", "AWS::KinesisFirehose::DeliveryStream", @@ -189,6 +192,7 @@ "AWS::DataSync::Task", "AWS::ECS::TaskDefinition", "AWS::SageMaker::Model", + "AWS::QuickSight::RefreshSchedule", "AWS::IdentityStore::GroupMembership", "AWS::AppSync::FunctionConfiguration", "AWS::EC2::SpotFleet", @@ -273,6 +277,7 @@ "AWS::SecretsManager::ResourcePolicy", "AWS::Config::ConfigRule", "AWS::IoT::SoftwarePackageVersion", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::GuardDuty::ThreatIntelSet", @@ -332,6 +337,8 @@ "AWS::WAFv2::WebACL", "AWS::EC2::TransitGatewayConnect", "AWS::EC2::SecurityGroup", + "AWS::QuickSight::Theme", + "AWS::EC2::CapacityReservationFleet", "AWS::OpsWorks::Volume", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", @@ -345,6 +352,7 @@ "AWS::ServiceDiscovery::Service", "AWS::IoTEvents::AlarmModel", "AWS::EFS::MountTarget", + "AWS::QuickSight::DataSet", "AWS::EC2::VPNConnection", "AWS::WAF::WebACL", "AWS::ServiceDiscovery::PublicDnsNamespace", @@ -476,6 +484,7 @@ "AWS::StepFunctions::StateMachine", "AWS::RDS::DBClusterParameterGroup", "AWS::WAF::XssMatchSet", + "AWS::IoT::CertificateProvider", "AWS::EventSchemas::RegistryPolicy", "AWS::EventSchemas::Registry", "AWS::Config::RemediationConfiguration", @@ -533,6 +542,7 @@ "AWS::ApiGateway::Stage", "AWS::Budgets::Budget", "AWS::Batch::ComputeEnvironment", + "AWS::QuickSight::VPCConnection", "AWS::DataPipeline::Pipeline", "AWS::IoT::Thing", "AWS::Route53::HealthCheck", @@ -561,9 +571,11 @@ "AWS::CloudFormation::ResourceDefaultVersion", "AWS::SSM::ResourceDataSync", "AWS::Greengrass::LoggerDefinitionVersion", + "AWS::QuickSight::Dashboard", "AWS::ServiceCatalog::TagOptionAssociation", "AWS::DataBrew::Job", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::QuickSight::Template", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", "AWS::RDS::DBSubnetGroup", @@ -613,6 +625,7 @@ "aws-glue-partition.json", "aws-ec2-transitgatewayroutetablepropagation.json", "aws-guardduty-filter.json", + "aws-ecs-service.json", "aws-ram-resourceshare.json", "aws-dynamodb-table.json", "aws-ec2-securitygroupegress.json", @@ -630,6 +643,7 @@ "aws-budgets-budgetsaction.json", "aws-logs-resourcepolicy.json", "aws-servicecatalog-launchnotificationconstraint.json", + "aws-quicksight-datasource.json", "aws-iot-cacertificate.json", "aws-ec2-networkaclentry.json", "aws-transfer-certificate.json", @@ -653,6 +667,7 @@ "aws-ec2-transitgatewayroutetable.json", "aws-route53-recordset.json", "aws-iotanalytics-datastore.json", + "aws-eks-accessentry.json", "aws-elasticache-securitygroup.json", "aws-opsworks-layer.json", "aws-kinesisfirehose-deliverystream.json", @@ -672,12 +687,12 @@ "aws-sagemaker-pipeline.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", - "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-ec2-vpcendpointconnectionnotification.json", "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-route53resolver-resolverruleassociation.json", @@ -713,6 +728,7 @@ "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", + "aws-sagemaker-app.json", "aws-ec2-vpcgatewayattachment.json", "aws-cloudtrail-trail.json", "aws-gamelift-gameservergroup.json", @@ -725,7 +741,6 @@ "aws-iam-role.json", "aws-events-apidestination.json", "aws-dms-endpoint.json", - "aws-iotsitewise-project.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", "aws-sagemaker-endpointconfig.json", @@ -739,6 +754,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -750,6 +766,7 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-elasticache-parametergroup.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-cloudformation-stackset.json", "aws-ec2-route.json", "aws-codecommit-repository.json", @@ -767,7 +784,7 @@ "aws-ram-permission.json", "aws-datasync-task.json", "aws-ecs-taskdefinition.json", - "aws-sagemaker-model.json", + "aws-quicksight-refreshschedule.json", "aws-identitystore-groupmembership.json", "aws-appsync-functionconfiguration.json", "aws-ec2-spotfleet.json", @@ -775,7 +792,6 @@ "aws-iot-policyprincipalattachment.json", "aws-msk-batchscramsecret.json", "aws-dms-certificate.json", - "aws-s3-bucket.json", "aws-servicediscovery-httpnamespace.json", "aws-emr-securityconfiguration.json", "aws-cloudwatch-insightrule.json", @@ -804,6 +820,7 @@ "aws-glue-securityconfiguration.json", "aws-databrew-ruleset.json", "aws-applicationinsights-application.json", + "aws-ecs-clustercapacityproviderassociations.json", "aws-appconfig-configurationprofile.json", "aws-route53resolver-firewallrulegroup.json", "aws-msk-configuration.json", @@ -811,10 +828,12 @@ "aws-ec2-transitgatewaymulticastdomain.json", "aws-eks-cluster.json", "aws-codebuild-project.json", + "aws-logs-querydefinition.json", "aws-iam-instanceprofile.json", "aws-iot-billinggroup.json", "aws-datasync-locationnfs.json", "aws-kinesisanalyticsv2-applicationoutput.json", + "aws-sagemaker-domain.json", "aws-greengrass-coredefinitionversion.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", @@ -839,6 +858,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-config-configrule.json", "aws-iot-softwarepackageversion.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-ec2-vpc.json", @@ -884,6 +904,7 @@ "aws-apigateway-account.json", "aws-ec2-transitgatewayconnect.json", "aws-ec2-securitygroup.json", + "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", @@ -896,6 +917,7 @@ "aws-servicediscovery-service.json", "aws-iotevents-alarmmodel.json", "aws-efs-mounttarget.json", + "aws-quicksight-dataset.json", "aws-waf-webacl.json", "aws-servicediscovery-publicdnsnamespace.json", "aws-iam-user.json", @@ -906,6 +928,7 @@ "aws-iot-custommetric.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-apigatewayv2-domainname.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", @@ -926,7 +949,6 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", - "aws-iotsitewise-gateway.json", "aws-cloudformation-macro.json", "aws-sagemaker-workteam.json", "aws-lambda-layerversionpermission.json", @@ -1007,6 +1029,7 @@ "aws-stepfunctions-statemachine.json", "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", + "aws-iot-certificateprovider.json", "aws-eventschemas-registrypolicy.json", "aws-eventschemas-registry.json", "aws-config-remediationconfiguration.json", @@ -1018,6 +1041,7 @@ "aws-glue-workflow.json", "aws-apigatewayv2-authorizer.json", "aws-iot-accountauditconfiguration.json", + "aws-sagemaker-userprofile.json", "aws-personalize-dataset.json", "aws-ec2-prefixlist.json", "aws-ec2-instance.json", @@ -1058,6 +1082,7 @@ "aws-apigateway-stage.json", "aws-budgets-budget.json", "aws-batch-computeenvironment.json", + "aws-quicksight-vpcconnection.json", "aws-iot-thing.json", "aws-events-eventbuspolicy.json", "aws-athena-namedquery.json", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-clustercapacityproviderassociations.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-clustercapacityproviderassociations.json deleted file mode 100644 index 1f0d902bba..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-clustercapacityproviderassociations.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Cluster" - ], - "definitions": { - "CapacityProvider": { - "anyOf": [ - { - "enum": [ - "FARGATE", - "FARGATE_SPOT" - ], - "type": "string" - }, - { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - ], - "description": "If using ec2 auto-scaling, the name of the associated capacity provider. Otherwise FARGATE, FARGATE_SPOT.", - "type": "string" - }, - "CapacityProviderStrategy": { - "additionalProperties": false, - "properties": { - "Base": { - "maximum": 100000, - "minimum": 0, - "type": "integer" - }, - "CapacityProvider": { - "$ref": "#/definitions/CapacityProvider" - }, - "Weight": { - "maximum": 1000, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "CapacityProvider" - ], - "type": "object" - }, - "CapacityProviders": { - "description": "List of capacity providers to associate with the cluster", - "items": { - "$ref": "#/definitions/CapacityProvider" - }, - "type": "array", - "uniqueItems": true - }, - "Cluster": { - "description": "The name of the cluster", - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "DefaultCapacityProviderStrategy": { - "description": "List of capacity providers to associate with the cluster", - "items": { - "$ref": "#/definitions/CapacityProviderStrategy" - }, - "type": "array" - } - }, - "description": "Associate a set of ECS Capacity Providers with a specified ECS Cluster", - "handlers": { - "create": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:PutClusterCapacityProviders" - ] - }, - "delete": { - "permissions": [ - "ecs:PutClusterCapacityProviders", - "ecs:DescribeClusters" - ] - }, - "list": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:ListClusters" - ] - }, - "read": { - "permissions": [ - "ecs:DescribeClusters" - ] - }, - "update": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:PutClusterCapacityProviders" - ] - } - }, - "primaryIdentifier": [ - "/properties/Cluster" - ], - "properties": { - "CapacityProviders": { - "$ref": "#/definitions/CapacityProviders" - }, - "Cluster": { - "$ref": "#/definitions/Cluster" - }, - "DefaultCapacityProviderStrategy": { - "$ref": "#/definitions/DefaultCapacityProviderStrategy" - } - }, - "required": [ - "CapacityProviders", - "Cluster", - "DefaultCapacityProviderStrategy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::ECS::ClusterCapacityProviderAssociations" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-service.json deleted file mode 100644 index 4f3ab51473..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-ecs-service.json +++ /dev/null @@ -1,482 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Cluster", - "/properties/DeploymentController", - "/properties/LaunchType", - "/properties/Role", - "/properties/SchedulingStrategy", - "/properties/ServiceName" - ], - "definitions": { - "AwsVpcConfiguration": { - "additionalProperties": false, - "properties": { - "AssignPublicIp": { - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "SecurityGroups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Subnets": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "CapacityProviderStrategyItem": { - "additionalProperties": false, - "properties": { - "Base": { - "type": "integer" - }, - "CapacityProvider": { - "type": "string" - }, - "Weight": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentAlarms": { - "additionalProperties": false, - "properties": { - "AlarmNames": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Enable": { - "type": "boolean" - }, - "Rollback": { - "type": "boolean" - } - }, - "required": [ - "AlarmNames", - "Rollback", - "Enable" - ], - "type": "object" - }, - "DeploymentCircuitBreaker": { - "additionalProperties": false, - "properties": { - "Enable": { - "type": "boolean" - }, - "Rollback": { - "type": "boolean" - } - }, - "required": [ - "Enable", - "Rollback" - ], - "type": "object" - }, - "DeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "$ref": "#/definitions/DeploymentAlarms" - }, - "DeploymentCircuitBreaker": { - "$ref": "#/definitions/DeploymentCircuitBreaker" - }, - "MaximumPercent": { - "type": "integer" - }, - "MinimumHealthyPercent": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentController": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "CODE_DEPLOY", - "ECS", - "EXTERNAL" - ], - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancer": { - "additionalProperties": false, - "properties": { - "ContainerName": { - "type": "string" - }, - "ContainerPort": { - "type": "integer" - }, - "LoadBalancerName": { - "type": "string" - }, - "TargetGroupArn": { - "type": "string" - } - }, - "type": "object" - }, - "LogConfiguration": { - "additionalProperties": false, - "properties": { - "LogDriver": { - "type": "string" - }, - "Options": { - "additionalProperties": false, - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "SecretOptions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Secret" - }, - "type": "array" - } - }, - "type": "object" - }, - "NetworkConfiguration": { - "additionalProperties": false, - "properties": { - "AwsvpcConfiguration": { - "$ref": "#/definitions/AwsVpcConfiguration" - } - }, - "type": "object" - }, - "PlacementConstraint": { - "additionalProperties": false, - "properties": { - "Expression": { - "type": "string" - }, - "Type": { - "enum": [ - "distinctInstance", - "memberOf" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "PlacementStrategy": { - "additionalProperties": false, - "properties": { - "Field": { - "type": "string" - }, - "Type": { - "enum": [ - "binpack", - "random", - "spread" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "Secret": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ValueFrom": { - "type": "string" - } - }, - "required": [ - "Name", - "ValueFrom" - ], - "type": "object" - }, - "ServiceConnectClientAlias": { - "additionalProperties": false, - "properties": { - "DnsName": { - "type": "string" - }, - "Port": { - "type": "integer" - } - }, - "required": [ - "Port" - ], - "type": "object" - }, - "ServiceConnectConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "LogConfiguration": { - "$ref": "#/definitions/LogConfiguration" - }, - "Namespace": { - "type": "string" - }, - "Services": { - "items": { - "$ref": "#/definitions/ServiceConnectService" - }, - "type": "array" - } - }, - "required": [ - "Enabled" - ], - "type": "object" - }, - "ServiceConnectService": { - "additionalProperties": false, - "properties": { - "ClientAliases": { - "items": { - "$ref": "#/definitions/ServiceConnectClientAlias" - }, - "type": "array" - }, - "DiscoveryName": { - "type": "string" - }, - "IngressPortOverride": { - "type": "integer" - }, - "PortName": { - "type": "string" - } - }, - "required": [ - "PortName" - ], - "type": "object" - }, - "ServiceRegistry": { - "additionalProperties": false, - "properties": { - "ContainerName": { - "type": "string" - }, - "ContainerPort": { - "type": "integer" - }, - "Port": { - "type": "integer" - }, - "RegistryArn": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::ECS::Service", - "handlers": { - "create": { - "permissions": [ - "ecs:CreateService", - "ecs:DescribeServices", - "iam:PassRole" - ], - "timeoutInMinutes": 180 - }, - "delete": { - "permissions": [ - "ecs:DeleteService", - "ecs:DescribeServices" - ], - "timeoutInMinutes": 30 - }, - "list": { - "permissions": [ - "ecs:DescribeServices", - "ecs:ListClusters", - "ecs:ListServices" - ] - }, - "read": { - "permissions": [ - "ecs:DescribeServices" - ] - }, - "update": { - "permissions": [ - "ecs:DescribeServices", - "ecs:ListTagsForResource", - "ecs:TagResource", - "ecs:UntagResource", - "ecs:UpdateService" - ], - "timeoutInMinutes": 180 - } - }, - "primaryIdentifier": [ - "/properties/ServiceArn", - "/properties/Cluster" - ], - "properties": { - "CapacityProviderStrategy": { - "items": { - "$ref": "#/definitions/CapacityProviderStrategyItem" - }, - "type": "array" - }, - "Cluster": { - "type": "string" - }, - "DeploymentConfiguration": { - "$ref": "#/definitions/DeploymentConfiguration" - }, - "DeploymentController": { - "$ref": "#/definitions/DeploymentController" - }, - "DesiredCount": { - "type": "integer" - }, - "EnableECSManagedTags": { - "type": "boolean" - }, - "EnableExecuteCommand": { - "type": "boolean" - }, - "HealthCheckGracePeriodSeconds": { - "type": "integer" - }, - "LaunchType": { - "enum": [ - "EC2", - "FARGATE", - "EXTERNAL" - ], - "type": "string" - }, - "LoadBalancers": { - "items": { - "$ref": "#/definitions/LoadBalancer" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "NetworkConfiguration": { - "$ref": "#/definitions/NetworkConfiguration" - }, - "PlacementConstraints": { - "items": { - "$ref": "#/definitions/PlacementConstraint" - }, - "type": "array" - }, - "PlacementStrategies": { - "items": { - "$ref": "#/definitions/PlacementStrategy" - }, - "type": "array" - }, - "PlatformVersion": { - "default": "LATEST", - "type": "string" - }, - "PropagateTags": { - "enum": [ - "SERVICE", - "TASK_DEFINITION" - ], - "type": "string" - }, - "Role": { - "type": "string" - }, - "SchedulingStrategy": { - "enum": [ - "DAEMON", - "REPLICA" - ], - "type": "string" - }, - "ServiceArn": { - "type": "string" - }, - "ServiceConnectConfiguration": { - "$ref": "#/definitions/ServiceConnectConfiguration" - }, - "ServiceName": { - "type": "string" - }, - "ServiceRegistries": { - "items": { - "$ref": "#/definitions/ServiceRegistry" - }, - "type": "array" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - }, - "TaskDefinition": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/ServiceArn", - "/properties/Name" - ], - "typeName": "AWS::ECS::Service", - "writeOnlyProperties": [ - "/properties/ServiceConnectConfiguration" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-efs-filesystem.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-efs-filesystem.json index 72c3f846c2..e0e31b9afd 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-efs-filesystem.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-efs-filesystem.json @@ -48,7 +48,10 @@ "AFTER_30_DAYS", "AFTER_60_DAYS", "AFTER_90_DAYS", - "AFTER_1_DAY" + "AFTER_1_DAY", + "AFTER_180_DAYS", + "AFTER_270_DAYS", + "AFTER_365_DAYS" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-gateway.json new file mode 100644 index 0000000000..2c70369407 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-gateway.json @@ -0,0 +1,189 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GatewayPlatform" + ], + "definitions": { + "CapabilityConfiguration": { + "description": "The JSON document that defines the gateway capability's configuration.", + "type": "string" + }, + "CapabilityNamespace": { + "description": "The namespace of the capability configuration.", + "type": "string" + }, + "GatewayCapabilitySummary": { + "additionalProperties": false, + "description": "Contains a summary of a gateway capability configuration.", + "properties": { + "CapabilityConfiguration": { + "$ref": "#/definitions/CapabilityConfiguration" + }, + "CapabilityNamespace": { + "$ref": "#/definitions/CapabilityNamespace" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "GatewayPlatform": { + "additionalProperties": false, + "description": "Contains a gateway's platform information.", + "oneOf": [ + { + "required": [ + "Greengrass" + ] + }, + { + "required": [ + "GreengrassV2" + ] + } + ], + "properties": { + "Greengrass": { + "$ref": "#/definitions/Greengrass", + "description": "A gateway that runs on AWS IoT Greengrass V1." + }, + "GreengrassV2": { + "$ref": "#/definitions/GreengrassV2", + "description": "A gateway that runs on AWS IoT Greengrass V2." + } + }, + "type": "object" + }, + "Greengrass": { + "additionalProperties": false, + "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", + "properties": { + "GroupArn": { + "description": "The ARN of the Greengrass group.", + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "GreengrassV2": { + "additionalProperties": false, + "description": "Contains the CoreDeviceThingName of AWS IoT Greengrass Group V2 that the gateway runs on.", + "properties": { + "CoreDeviceThingName": { + "description": "The name of the CoreDevice in GreenGrass V2.", + "type": "string" + } + }, + "required": [ + "CoreDeviceThingName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Gateway", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iam:PassRole", + "iam:GetRole", + "greengrass:GetCoreDevice", + "iot:DescribeThing" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteGateway" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListGateways" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotsitewise:UpdateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:DescribeGateway", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/GatewayId" + ], + "properties": { + "GatewayCapabilitySummaries": { + "description": "A list of gateway capability summaries that each contain a namespace and status.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/GatewayCapabilitySummary" + }, + "type": "array", + "uniqueItems": true + }, + "GatewayId": { + "description": "The ID of the gateway device.", + "type": "string" + }, + "GatewayName": { + "description": "A unique, friendly name for the gateway.", + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/GatewayPlatform", + "description": "The gateway's platform. You can only specify one platform in a gateway." + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the gateway.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/GatewayId" + ], + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Gateway" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-portal.json new file mode 100644 index 0000000000..1f96697cad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-portal.json @@ -0,0 +1,155 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/PortalArn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalAuthMode" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Portal", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreatePortal", + "iotsitewise:TagResource", + "iam:PassRole", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeletePortal", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListPortals" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribePortal" + ] + }, + "update": { + "permissions": [ + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", + "iotsitewise:UpdatePortal", + "iotsitewise:UntagResource", + "iam:PassRole", + "sso:GetManagedApplicationInstance", + "sso:UpdateApplicationInstanceDisplayData" + ] + } + }, + "primaryIdentifier": [ + "/properties/PortalId" + ], + "properties": { + "Alarms": { + "additionalProperties": false, + "description": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range.", + "properties": { + "AlarmRoleArn": { + "description": "The ARN of the IAM role that allows the alarm to perform actions and access AWS resources and services, such as AWS IoT Events.", + "type": "string" + }, + "NotificationLambdaArn": { + "description": "The ARN of the AWS Lambda function that manages alarm notifications. For more information, see Managing alarm notifications in the AWS IoT Events Developer Guide.", + "type": "string" + } + }, + "type": "object" + }, + "NotificationSenderEmail": { + "description": "The email address that sends alarm notifications.", + "type": "string" + }, + "PortalArn": { + "description": "The ARN of the portal, which has the following format.", + "type": "string" + }, + "PortalAuthMode": { + "description": "The service to use to authenticate users to the portal. Choose from SSO or IAM. You can't change this value after you create a portal.", + "type": "string" + }, + "PortalClientId": { + "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", + "type": "string" + }, + "PortalContactEmail": { + "description": "The AWS administrator's contact email address.", + "type": "string" + }, + "PortalDescription": { + "description": "A description for the portal.", + "type": "string" + }, + "PortalId": { + "description": "The ID of the portal.", + "type": "string" + }, + "PortalName": { + "description": "A friendly name for the portal.", + "type": "string" + }, + "PortalStartUrl": { + "description": "The public root URL for the AWS IoT AWS IoT SiteWise Monitor application portal.", + "type": "string" + }, + "RoleArn": { + "description": "The ARN of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the portal.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/PortalArn", + "/properties/PortalClientId", + "/properties/PortalId", + "/properties/PortalStartUrl" + ], + "required": [ + "PortalContactEmail", + "PortalName", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotsitewise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Portal", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-project.json new file mode 100644 index 0000000000..0e457b1491 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iotsitewise-project.json @@ -0,0 +1,120 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalId" + ], + "definitions": { + "AssetId": { + "description": "The ID of the asset", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Project", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateProject", + "iotsitewise:BatchAssociateProjectAssets" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteProject" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListProjects" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:ListTagsForResource", + "iotsitewise:ListProjectAssets" + ] + }, + "update": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:UpdateProject", + "iotsitewise:BatchAssociateProjectAssets", + "iotsitewise:BatchDisAssociateProjectAssets", + "iotsitewise:ListProjectAssets", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ProjectId" + ], + "properties": { + "AssetIds": { + "description": "The IDs of the assets to be associated to the project.", + "items": { + "$ref": "#/definitions/AssetId" + }, + "type": "array", + "uniqueItems": true + }, + "PortalId": { + "description": "The ID of the portal in which to create the project.", + "type": "string" + }, + "ProjectArn": { + "description": "The ARN of the project.", + "type": "string" + }, + "ProjectDescription": { + "description": "A description for the project.", + "type": "string" + }, + "ProjectId": { + "description": "The ID of the project.", + "type": "string" + }, + "ProjectName": { + "description": "A friendly name for the project.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ProjectId", + "/properties/ProjectArn" + ], + "required": [ + "PortalId", + "ProjectName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Project" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-logs-querydefinition.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-logs-querydefinition.json deleted file mode 100644 index 1b3d459124..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-logs-querydefinition.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "LogGroup": { - "maxLength": 512, - "minLength": 1, - "pattern": "[\\.\\-_/#A-Za-z0-9]+", - "type": "string" - } - }, - "description": "The resource schema for AWSLogs QueryDefinition", - "handlers": { - "create": { - "permissions": [ - "logs:PutQueryDefinition" - ] - }, - "delete": { - "permissions": [ - "logs:DeleteQueryDefinition" - ] - }, - "list": { - "permissions": [ - "logs:DescribeQueryDefinitions" - ] - }, - "read": { - "permissions": [ - "logs:DescribeQueryDefinitions" - ] - }, - "update": { - "permissions": [ - "logs:PutQueryDefinition" - ] - } - }, - "primaryIdentifier": [ - "/properties/QueryDefinitionId" - ], - "properties": { - "LogGroupNames": { - "description": "Optionally define specific log groups as part of your query definition", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogGroup", - "description": "LogGroup name" - }, - "type": "array" - }, - "Name": { - "description": "A name for the saved query definition", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "QueryDefinitionId": { - "description": "Unique identifier of a query definition", - "maxLength": 256, - "minLength": 0, - "type": "string" - }, - "QueryString": { - "description": "The query string to use for this definition", - "maxLength": 10000, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/QueryDefinitionId" - ], - "required": [ - "Name", - "QueryString" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", - "taggable": false, - "typeName": "AWS::Logs::QueryDefinition" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-analysis.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-analysis.json new file mode 100644 index 0000000000..21d89fde23 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-analysis.json @@ -0,0 +1,11061 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AnalysisId", + "/properties/AwsAccountId" + ], + "definitions": { + "AggregationFunction": { + "additionalProperties": false, + "properties": { + "AttributeAggregationFunction": { + "$ref": "#/definitions/AttributeAggregationFunction" + }, + "CategoricalAggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "DateAggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "NumericalAggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + } + }, + "type": "object" + }, + "AggregationSortConfiguration": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SortDirection": { + "$ref": "#/definitions/SortDirection" + } + }, + "required": [ + "Column", + "SortDirection" + ], + "type": "object" + }, + "AllSheetsFilterScopeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "AnalysisDefaults": { + "additionalProperties": false, + "properties": { + "DefaultNewSheetConfiguration": { + "$ref": "#/definitions/DefaultNewSheetConfiguration" + } + }, + "required": [ + "DefaultNewSheetConfiguration" + ], + "type": "object" + }, + "AnalysisDefinition": { + "additionalProperties": false, + "properties": { + "AnalysisDefaults": { + "$ref": "#/definitions/AnalysisDefaults" + }, + "CalculatedFields": { + "items": { + "$ref": "#/definitions/CalculatedField" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "ColumnConfigurations": { + "items": { + "$ref": "#/definitions/ColumnConfiguration" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifierDeclarations": { + "items": { + "$ref": "#/definitions/DataSetIdentifierDeclaration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "FilterGroups": { + "items": { + "$ref": "#/definitions/FilterGroup" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "Options": { + "$ref": "#/definitions/AssetOptions" + }, + "ParameterDeclarations": { + "items": { + "$ref": "#/definitions/ParameterDeclaration" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/SheetDefinition" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "DataSetIdentifierDeclarations" + ], + "type": "object" + }, + "AnalysisError": { + "additionalProperties": false, + "properties": { + "Message": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/AnalysisErrorType" + }, + "ViolatedEntities": { + "items": { + "$ref": "#/definitions/Entity" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "AnalysisErrorType": { + "enum": [ + "ACCESS_DENIED", + "SOURCE_NOT_FOUND", + "DATA_SET_NOT_FOUND", + "INTERNAL_FAILURE", + "PARAMETER_VALUE_INCOMPATIBLE", + "PARAMETER_TYPE_INVALID", + "PARAMETER_NOT_FOUND", + "COLUMN_TYPE_MISMATCH", + "COLUMN_GEOGRAPHIC_ROLE_MISMATCH", + "COLUMN_REPLACEMENT_MISSING" + ], + "type": "string" + }, + "AnalysisSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceTemplate": { + "$ref": "#/definitions/AnalysisSourceTemplate" + } + }, + "type": "object" + }, + "AnalysisSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/DataSetReference" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "AnchorDateConfiguration": { + "additionalProperties": false, + "properties": { + "AnchorOption": { + "$ref": "#/definitions/AnchorOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "AnchorOption": { + "enum": [ + "NOW" + ], + "type": "string" + }, + "ArcAxisConfiguration": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/ArcAxisDisplayRange" + }, + "ReserveRange": { + "default": 0, + "type": "number" + } + }, + "type": "object" + }, + "ArcAxisDisplayRange": { + "additionalProperties": false, + "properties": { + "Max": { + "default": null, + "type": "number" + }, + "Min": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "ArcConfiguration": { + "additionalProperties": false, + "properties": { + "ArcAngle": { + "default": null, + "type": "number" + }, + "ArcThickness": { + "$ref": "#/definitions/ArcThicknessOptions" + } + }, + "type": "object" + }, + "ArcOptions": { + "additionalProperties": false, + "properties": { + "ArcThickness": { + "$ref": "#/definitions/ArcThickness" + } + }, + "type": "object" + }, + "ArcThickness": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE", + "WHOLE" + ], + "type": "string" + }, + "ArcThicknessOptions": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "AssetOptions": { + "additionalProperties": false, + "properties": { + "Timezone": { + "type": "string" + }, + "WeekStart": { + "$ref": "#/definitions/DayOfTheWeek" + } + }, + "type": "object" + }, + "AttributeAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleAttributeAggregation": { + "$ref": "#/definitions/SimpleAttributeAggregationFunction" + }, + "ValueForMultipleValues": { + "type": "string" + } + }, + "type": "object" + }, + "AxisBinding": { + "enum": [ + "PRIMARY_YAXIS", + "SECONDARY_YAXIS" + ], + "type": "string" + }, + "AxisDataOptions": { + "additionalProperties": false, + "properties": { + "DateAxisOptions": { + "$ref": "#/definitions/DateAxisOptions" + }, + "NumericAxisOptions": { + "$ref": "#/definitions/NumericAxisOptions" + } + }, + "type": "object" + }, + "AxisDisplayDataDrivenRange": { + "additionalProperties": false, + "type": "object" + }, + "AxisDisplayMinMaxRange": { + "additionalProperties": false, + "properties": { + "Maximum": { + "default": null, + "type": "number" + }, + "Minimum": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AxisOffset": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "DataOptions": { + "$ref": "#/definitions/AxisDataOptions" + }, + "GridLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ScrollbarOptions": { + "$ref": "#/definitions/ScrollBarOptions" + }, + "TickLabelOptions": { + "$ref": "#/definitions/AxisTickLabelOptions" + } + }, + "type": "object" + }, + "AxisDisplayRange": { + "additionalProperties": false, + "properties": { + "DataDriven": { + "$ref": "#/definitions/AxisDisplayDataDrivenRange" + }, + "MinMax": { + "$ref": "#/definitions/AxisDisplayMinMaxRange" + } + }, + "type": "object" + }, + "AxisLabelOptions": { + "additionalProperties": false, + "properties": { + "ApplyTo": { + "$ref": "#/definitions/AxisLabelReferenceOptions" + }, + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "AxisLabelReferenceOptions": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "AxisLinearScale": { + "additionalProperties": false, + "properties": { + "StepCount": { + "default": null, + "type": "number" + }, + "StepSize": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisLogarithmicScale": { + "additionalProperties": false, + "properties": { + "Base": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisScale": { + "additionalProperties": false, + "properties": { + "Linear": { + "$ref": "#/definitions/AxisLinearScale" + }, + "Logarithmic": { + "$ref": "#/definitions/AxisLogarithmicScale" + } + }, + "type": "object" + }, + "AxisTickLabelOptions": { + "additionalProperties": false, + "properties": { + "LabelOptions": { + "$ref": "#/definitions/LabelOptions" + }, + "RotationAngle": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "BarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Orientation": { + "$ref": "#/definitions/BarChartOrientation" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/BarChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BarChartFieldWells": { + "additionalProperties": false, + "properties": { + "BarChartAggregatedFieldWells": { + "$ref": "#/definitions/BarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "BarChartOrientation": { + "enum": [ + "HORIZONTAL", + "VERTICAL" + ], + "type": "string" + }, + "BarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "BarsArrangement": { + "enum": [ + "CLUSTERED", + "STACKED", + "STACKED_PERCENT" + ], + "type": "string" + }, + "BaseMapStyleType": { + "enum": [ + "LIGHT_GRAY", + "DARK_GRAY", + "STREET", + "IMAGERY" + ], + "type": "string" + }, + "BinCountOptions": { + "additionalProperties": false, + "properties": { + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BinWidthOptions": { + "additionalProperties": false, + "properties": { + "BinCountLimit": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BodySectionConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/BodySectionContent" + }, + "PageBreakConfiguration": { + "$ref": "#/definitions/SectionPageBreakConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Content", + "SectionId" + ], + "type": "object" + }, + "BodySectionContent": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + } + }, + "type": "object" + }, + "BoxPlotAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BoxPlotChartConfiguration": { + "additionalProperties": false, + "properties": { + "BoxPlotOptions": { + "$ref": "#/definitions/BoxPlotOptions" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BoxPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SortConfiguration": { + "$ref": "#/definitions/BoxPlotSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BoxPlotFieldWells": { + "additionalProperties": false, + "properties": { + "BoxPlotAggregatedFieldWells": { + "$ref": "#/definitions/BoxPlotAggregatedFieldWells" + } + }, + "type": "object" + }, + "BoxPlotFillStyle": { + "enum": [ + "SOLID", + "TRANSPARENT" + ], + "type": "string" + }, + "BoxPlotOptions": { + "additionalProperties": false, + "properties": { + "AllDataPointsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "OutlierVisibility": { + "$ref": "#/definitions/Visibility" + }, + "StyleOptions": { + "$ref": "#/definitions/BoxPlotStyleOptions" + } + }, + "type": "object" + }, + "BoxPlotSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + } + }, + "type": "object" + }, + "BoxPlotStyleOptions": { + "additionalProperties": false, + "properties": { + "FillStyle": { + "$ref": "#/definitions/BoxPlotFillStyle" + } + }, + "type": "object" + }, + "BoxPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BoxPlotChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "CalculatedField": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 32000, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 127, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "Expression", + "Name" + ], + "type": "object" + }, + "CalculatedMeasureField": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression", + "FieldId" + ], + "type": "object" + }, + "CascadingControlConfiguration": { + "additionalProperties": false, + "properties": { + "SourceControls": { + "items": { + "$ref": "#/definitions/CascadingControlSource" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CascadingControlSource": { + "additionalProperties": false, + "properties": { + "ColumnToMatch": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceSheetControlId": { + "type": "string" + } + }, + "type": "object" + }, + "CategoricalAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT" + ], + "type": "string" + }, + "CategoricalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoricalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoryDrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "CategoryValues", + "Column" + ], + "type": "object" + }, + "CategoryFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Configuration": { + "$ref": "#/definitions/CategoryFilterConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "Column", + "Configuration", + "FilterId" + ], + "type": "object" + }, + "CategoryFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CustomFilterConfiguration": { + "$ref": "#/definitions/CustomFilterConfiguration" + }, + "CustomFilterListConfiguration": { + "$ref": "#/definitions/CustomFilterListConfiguration" + }, + "FilterListConfiguration": { + "$ref": "#/definitions/FilterListConfiguration" + } + }, + "type": "object" + }, + "CategoryFilterMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL", + "CONTAINS", + "DOES_NOT_CONTAIN", + "STARTS_WITH", + "ENDS_WITH" + ], + "type": "string" + }, + "CategoryFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "ChartAxisLabelOptions": { + "additionalProperties": false, + "properties": { + "AxisLabelOptions": { + "items": { + "$ref": "#/definitions/AxisLabelOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SortIconVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ClusterMarker": { + "additionalProperties": false, + "properties": { + "SimpleClusterMarker": { + "$ref": "#/definitions/SimpleClusterMarker" + } + }, + "type": "object" + }, + "ClusterMarkerConfiguration": { + "additionalProperties": false, + "properties": { + "ClusterMarker": { + "$ref": "#/definitions/ClusterMarker" + } + }, + "type": "object" + }, + "ColorFillType": { + "enum": [ + "DISCRETE", + "GRADIENT" + ], + "type": "string" + }, + "ColorScale": { + "additionalProperties": false, + "properties": { + "ColorFillType": { + "$ref": "#/definitions/ColorFillType" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DataColor" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "NullValueColor": { + "$ref": "#/definitions/DataColor" + } + }, + "required": [ + "ColorFillType", + "Colors" + ], + "type": "object" + }, + "ColorsConfiguration": { + "additionalProperties": false, + "properties": { + "CustomColors": { + "items": { + "$ref": "#/definitions/CustomColor" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ColumnConfiguration": { + "additionalProperties": false, + "properties": { + "ColorsConfiguration": { + "$ref": "#/definitions/ColorsConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + }, + "Role": { + "$ref": "#/definitions/ColumnRole" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ColumnHierarchy": { + "additionalProperties": false, + "properties": { + "DateTimeHierarchy": { + "$ref": "#/definitions/DateTimeHierarchy" + }, + "ExplicitHierarchy": { + "$ref": "#/definitions/ExplicitHierarchy" + }, + "PredefinedHierarchy": { + "$ref": "#/definitions/PredefinedHierarchy" + } + }, + "type": "object" + }, + "ColumnIdentifier": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ColumnName", + "DataSetIdentifier" + ], + "type": "object" + }, + "ColumnRole": { + "enum": [ + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "ColumnSort": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortBy": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "Direction", + "SortBy" + ], + "type": "object" + }, + "ColumnTooltipItem": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ComboChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "BarValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "LineValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ComboChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "LineDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/ComboChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "ComboChartFieldWells": { + "additionalProperties": false, + "properties": { + "ComboChartAggregatedFieldWells": { + "$ref": "#/definitions/ComboChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "ComboChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ComboChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ComparisonConfiguration": { + "additionalProperties": false, + "properties": { + "ComparisonFormat": { + "$ref": "#/definitions/ComparisonFormatConfiguration" + }, + "ComparisonMethod": { + "$ref": "#/definitions/ComparisonMethod" + } + }, + "type": "object" + }, + "ComparisonFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "ComparisonMethod": { + "enum": [ + "DIFFERENCE", + "PERCENT_DIFFERENCE", + "PERCENT" + ], + "type": "string" + }, + "Computation": { + "additionalProperties": false, + "properties": { + "Forecast": { + "$ref": "#/definitions/ForecastComputation" + }, + "GrowthRate": { + "$ref": "#/definitions/GrowthRateComputation" + }, + "MaximumMinimum": { + "$ref": "#/definitions/MaximumMinimumComputation" + }, + "MetricComparison": { + "$ref": "#/definitions/MetricComparisonComputation" + }, + "PeriodOverPeriod": { + "$ref": "#/definitions/PeriodOverPeriodComputation" + }, + "PeriodToDate": { + "$ref": "#/definitions/PeriodToDateComputation" + }, + "TopBottomMovers": { + "$ref": "#/definitions/TopBottomMoversComputation" + }, + "TopBottomRanked": { + "$ref": "#/definitions/TopBottomRankedComputation" + }, + "TotalAggregation": { + "$ref": "#/definitions/TotalAggregationComputation" + }, + "UniqueValues": { + "$ref": "#/definitions/UniqueValuesComputation" + } + }, + "type": "object" + }, + "ConditionalFormattingColor": { + "additionalProperties": false, + "properties": { + "Gradient": { + "$ref": "#/definitions/ConditionalFormattingGradientColor" + }, + "Solid": { + "$ref": "#/definitions/ConditionalFormattingSolidColor" + } + }, + "type": "object" + }, + "ConditionalFormattingCustomIconCondition": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DisplayConfiguration": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayConfiguration" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconOptions": { + "$ref": "#/definitions/ConditionalFormattingCustomIconOptions" + } + }, + "required": [ + "Expression", + "IconOptions" + ], + "type": "object" + }, + "ConditionalFormattingCustomIconOptions": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/Icon" + }, + "UnicodeIcon": { + "pattern": "^[^\\u0000-\\u00FF]$", + "type": "string" + } + }, + "type": "object" + }, + "ConditionalFormattingGradientColor": { + "additionalProperties": false, + "properties": { + "Color": { + "$ref": "#/definitions/GradientColor" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Color", + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIcon": { + "additionalProperties": false, + "properties": { + "CustomCondition": { + "$ref": "#/definitions/ConditionalFormattingCustomIconCondition" + }, + "IconSet": { + "$ref": "#/definitions/ConditionalFormattingIconSet" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayConfiguration": { + "additionalProperties": false, + "properties": { + "IconDisplayOption": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayOption" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayOption": { + "enum": [ + "ICON_ONLY" + ], + "type": "string" + }, + "ConditionalFormattingIconSet": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconSetType": { + "$ref": "#/definitions/ConditionalFormattingIconSetType" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIconSetType": { + "enum": [ + "PLUS_MINUS", + "CHECK_X", + "THREE_COLOR_ARROW", + "THREE_GRAY_ARROW", + "CARET_UP_MINUS_DOWN", + "THREE_SHAPE", + "THREE_CIRCLE", + "FLAGS", + "BARS", + "FOUR_COLOR_ARROW", + "FOUR_GRAY_ARROW" + ], + "type": "string" + }, + "ConditionalFormattingSolidColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ContributionAnalysisDefault": { + "additionalProperties": false, + "properties": { + "ContributorDimensions": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "MeasureFieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ContributorDimensions", + "MeasureFieldId" + ], + "type": "object" + }, + "CrossDatasetTypes": { + "enum": [ + "ALL_DATASETS", + "SINGLE_DATASET" + ], + "type": "string" + }, + "CurrencyDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Symbol": { + "pattern": "[A-Z]{3}", + "type": "string" + } + }, + "type": "object" + }, + "CustomActionFilterOperation": { + "additionalProperties": false, + "properties": { + "SelectedFieldsConfiguration": { + "$ref": "#/definitions/FilterOperationSelectedFieldsConfiguration" + }, + "TargetVisualsConfiguration": { + "$ref": "#/definitions/FilterOperationTargetVisualsConfiguration" + } + }, + "required": [ + "SelectedFieldsConfiguration", + "TargetVisualsConfiguration" + ], + "type": "object" + }, + "CustomActionNavigationOperation": { + "additionalProperties": false, + "properties": { + "LocalNavigationConfiguration": { + "$ref": "#/definitions/LocalNavigationConfiguration" + } + }, + "type": "object" + }, + "CustomActionSetParametersOperation": { + "additionalProperties": false, + "properties": { + "ParameterValueConfigurations": { + "items": { + "$ref": "#/definitions/SetParameterValueConfiguration" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ParameterValueConfigurations" + ], + "type": "object" + }, + "CustomActionURLOperation": { + "additionalProperties": false, + "properties": { + "URLTarget": { + "$ref": "#/definitions/URLTargetConfiguration" + }, + "URLTemplate": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "URLTarget", + "URLTemplate" + ], + "type": "object" + }, + "CustomColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "SpecialValue": { + "$ref": "#/definitions/SpecialValue" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "CustomContentConfiguration": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/CustomContentType" + }, + "ContentUrl": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ImageScaling": { + "$ref": "#/definitions/CustomContentImageScalingConfiguration" + } + }, + "type": "object" + }, + "CustomContentImageScalingConfiguration": { + "enum": [ + "FIT_TO_HEIGHT", + "FIT_TO_WIDTH", + "DO_NOT_SCALE", + "SCALE_TO_VISUAL" + ], + "type": "string" + }, + "CustomContentType": { + "enum": [ + "IMAGE", + "OTHER_EMBEDDED_CONTENT" + ], + "type": "string" + }, + "CustomContentVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/CustomContentConfiguration" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "CustomFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValue": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomFilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomNarrativeOptions": { + "additionalProperties": false, + "properties": { + "Narrative": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Narrative" + ], + "type": "object" + }, + "CustomParameterValues": { + "additionalProperties": false, + "properties": { + "DateTimeValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "DecimalValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "IntegerValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "StringValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CustomValuesConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValues": { + "$ref": "#/definitions/CustomParameterValues" + }, + "IncludeNullValue": { + "type": "boolean" + } + }, + "required": [ + "CustomValues" + ], + "type": "object" + }, + "DataBarsOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "NegativeColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PositiveColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "DataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "DataFieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "DataLabelContent": { + "enum": [ + "VALUE", + "PERCENT", + "VALUE_AND_PERCENT" + ], + "type": "string" + }, + "DataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DataLabelTypes": { + "items": { + "$ref": "#/definitions/DataLabelType" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelContent": { + "$ref": "#/definitions/DataLabelContent" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Overlap": { + "$ref": "#/definitions/DataLabelOverlap" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataLabelOverlap": { + "enum": [ + "DISABLE_OVERLAP", + "ENABLE_OVERLAP" + ], + "type": "string" + }, + "DataLabelPosition": { + "enum": [ + "INSIDE", + "OUTSIDE", + "LEFT", + "TOP", + "BOTTOM", + "RIGHT" + ], + "type": "string" + }, + "DataLabelType": { + "additionalProperties": false, + "properties": { + "DataPathLabelType": { + "$ref": "#/definitions/DataPathLabelType" + }, + "FieldLabelType": { + "$ref": "#/definitions/FieldLabelType" + }, + "MaximumLabelType": { + "$ref": "#/definitions/MaximumLabelType" + }, + "MinimumLabelType": { + "$ref": "#/definitions/MinimumLabelType" + }, + "RangeEndsLabelType": { + "$ref": "#/definitions/RangeEndsLabelType" + } + }, + "type": "object" + }, + "DataPathColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Element": { + "$ref": "#/definitions/DataPathValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Color", + "Element" + ], + "type": "object" + }, + "DataPathLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataPathSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortPaths": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Direction", + "SortPaths" + ], + "type": "object" + }, + "DataPathType": { + "additionalProperties": false, + "properties": { + "PivotTableDataPathType": { + "$ref": "#/definitions/PivotTableDataPathType" + } + }, + "type": "object" + }, + "DataPathValue": { + "additionalProperties": false, + "properties": { + "DataPathType": { + "$ref": "#/definitions/DataPathType" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "DataSetIdentifierDeclaration": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "Identifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetArn", + "Identifier" + ], + "type": "object" + }, + "DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "DataSetPlaceholder": { + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "DateAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX" + ], + "type": "string" + }, + "DateAxisOptions": { + "additionalProperties": false, + "properties": { + "MissingDateVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DateDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DateGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateTimeDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DateTimeFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "DateTimeHierarchy": { + "additionalProperties": false, + "properties": { + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "HierarchyId" + ], + "type": "object" + }, + "DateTimeParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "DateTimeParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DateTimeDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DateTimeValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "DateTimePickerControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DateTimeValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "format": "date-time", + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DayOfTheWeek": { + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ], + "type": "string" + }, + "DecimalDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DecimalParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Values": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "DecimalParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DecimalDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DecimalValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "DecimalPlacesConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlaces": { + "maximum": 20, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "DecimalPlaces" + ], + "type": "object" + }, + "DecimalValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DefaultFreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultGridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultInteractiveLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeForm": { + "$ref": "#/definitions/DefaultFreeFormLayoutConfiguration" + }, + "Grid": { + "$ref": "#/definitions/DefaultGridLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultNewSheetConfiguration": { + "additionalProperties": false, + "properties": { + "InteractiveLayoutConfiguration": { + "$ref": "#/definitions/DefaultInteractiveLayoutConfiguration" + }, + "PaginatedLayoutConfiguration": { + "$ref": "#/definitions/DefaultPaginatedLayoutConfiguration" + }, + "SheetContentType": { + "$ref": "#/definitions/SheetContentType" + } + }, + "type": "object" + }, + "DefaultPaginatedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "SectionBased": { + "$ref": "#/definitions/DefaultSectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultSectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DestinationParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValuesConfiguration": { + "$ref": "#/definitions/CustomValuesConfiguration" + }, + "SelectAllValueOptions": { + "$ref": "#/definitions/SelectAllValueOptions" + }, + "SourceColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceField": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SourceParameterName": { + "type": "string" + } + }, + "type": "object" + }, + "DimensionField": { + "additionalProperties": false, + "properties": { + "CategoricalDimensionField": { + "$ref": "#/definitions/CategoricalDimensionField" + }, + "DateDimensionField": { + "$ref": "#/definitions/DateDimensionField" + }, + "NumericalDimensionField": { + "$ref": "#/definitions/NumericalDimensionField" + } + }, + "type": "object" + }, + "DonutCenterOptions": { + "additionalProperties": false, + "properties": { + "LabelVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DonutOptions": { + "additionalProperties": false, + "properties": { + "ArcOptions": { + "$ref": "#/definitions/ArcOptions" + }, + "DonutCenterOptions": { + "$ref": "#/definitions/DonutCenterOptions" + } + }, + "type": "object" + }, + "DrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryDrillDownFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityDrillDownFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeDrillDownFilter" + } + }, + "type": "object" + }, + "DropDownControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DynamicDefaultValue": { + "additionalProperties": false, + "properties": { + "DefaultValueColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "GroupNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "UserNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "DefaultValueColumn" + ], + "type": "object" + }, + "EmptyVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "Entity": { + "additionalProperties": false, + "properties": { + "Path": { + "pattern": ".*\\S.*", + "type": "string" + } + }, + "type": "object" + }, + "ExcludePeriodConfiguration": { + "additionalProperties": false, + "properties": { + "Amount": { + "default": null, + "type": "number" + }, + "Granularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "Amount", + "Granularity" + ], + "type": "object" + }, + "ExplicitHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 2, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "FieldBasedTooltip": { + "additionalProperties": false, + "properties": { + "AggregationVisibility": { + "$ref": "#/definitions/Visibility" + }, + "TooltipFields": { + "items": { + "$ref": "#/definitions/TooltipItem" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "TooltipTitleType": { + "$ref": "#/definitions/TooltipTitleType" + } + }, + "type": "object" + }, + "FieldLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "FieldSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Direction", + "FieldId" + ], + "type": "object" + }, + "FieldSortOptions": { + "additionalProperties": false, + "properties": { + "ColumnSort": { + "$ref": "#/definitions/ColumnSort" + }, + "FieldSort": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "FieldTooltipItem": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/FilledMapConditionalFormattingOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "ConditionalFormattingOptions" + ], + "type": "object" + }, + "FilledMapConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Shape": { + "$ref": "#/definitions/FilledMapShapeConditionalFormatting" + } + }, + "required": [ + "Shape" + ], + "type": "object" + }, + "FilledMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/FilledMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/FilledMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "FilledMapFieldWells": { + "additionalProperties": false, + "properties": { + "FilledMapAggregatedFieldWells": { + "$ref": "#/definitions/FilledMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "FilledMapShapeConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Format": { + "$ref": "#/definitions/ShapeConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FilledMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/FilledMapConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Filter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityFilter" + }, + "NumericRangeFilter": { + "$ref": "#/definitions/NumericRangeFilter" + }, + "RelativeDatesFilter": { + "$ref": "#/definitions/RelativeDatesFilter" + }, + "TimeEqualityFilter": { + "$ref": "#/definitions/TimeEqualityFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeFilter" + }, + "TopBottomFilter": { + "$ref": "#/definitions/TopBottomFilter" + } + }, + "type": "object" + }, + "FilterControl": { + "additionalProperties": false, + "properties": { + "DateTimePicker": { + "$ref": "#/definitions/FilterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/FilterDropDownControl" + }, + "List": { + "$ref": "#/definitions/FilterListControl" + }, + "RelativeDateTime": { + "$ref": "#/definitions/FilterRelativeDateTimeControl" + }, + "Slider": { + "$ref": "#/definitions/FilterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/FilterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/FilterTextFieldControl" + } + }, + "type": "object" + }, + "FilterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlDateTimePickerType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterGroup": { + "additionalProperties": false, + "properties": { + "CrossDataset": { + "$ref": "#/definitions/CrossDatasetTypes" + }, + "FilterGroupId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/Filter" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "ScopeConfiguration": { + "$ref": "#/definitions/FilterScopeConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "CrossDataset", + "FilterGroupId", + "Filters", + "ScopeConfiguration" + ], + "type": "object" + }, + "FilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator" + ], + "type": "object" + }, + "FilterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterNullOption": { + "enum": [ + "ALL_VALUES", + "NULLS_ONLY", + "NON_NULLS_ONLY" + ], + "type": "string" + }, + "FilterOperationSelectedFieldsConfiguration": { + "additionalProperties": false, + "properties": { + "SelectedColumns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "$ref": "#/definitions/SelectedFieldOptions" + }, + "SelectedFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "FilterOperationTargetVisualsConfiguration": { + "additionalProperties": false, + "properties": { + "SameSheetTargetVisualConfiguration": { + "$ref": "#/definitions/SameSheetTargetVisualConfiguration" + } + }, + "type": "object" + }, + "FilterRelativeDateTimeControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/RelativeDateTimeControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "AllSheets": { + "$ref": "#/definitions/AllSheetsFilterScopeConfiguration" + }, + "SelectedSheets": { + "$ref": "#/definitions/SelectedSheetsFilterScopeConfiguration" + } + }, + "type": "object" + }, + "FilterSelectableValues": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlSliderType" + } + }, + "required": [ + "FilterControlId", + "MaximumValue", + "MinimumValue", + "SourceFilterId", + "StepSize", + "Title" + ], + "type": "object" + }, + "FilterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterVisualScope": { + "enum": [ + "ALL_VISUALS", + "SELECTED_VISUALS" + ], + "type": "string" + }, + "FontConfiguration": { + "additionalProperties": false, + "properties": { + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontDecoration": { + "$ref": "#/definitions/FontDecoration" + }, + "FontSize": { + "$ref": "#/definitions/FontSize" + }, + "FontStyle": { + "$ref": "#/definitions/FontStyle" + }, + "FontWeight": { + "$ref": "#/definitions/FontWeight" + } + }, + "type": "object" + }, + "FontDecoration": { + "enum": [ + "UNDERLINE", + "NONE" + ], + "type": "string" + }, + "FontSize": { + "additionalProperties": false, + "properties": { + "Relative": { + "$ref": "#/definitions/RelativeFontSize" + } + }, + "type": "object" + }, + "FontStyle": { + "enum": [ + "NORMAL", + "ITALIC" + ], + "type": "string" + }, + "FontWeight": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/FontWeightName" + } + }, + "type": "object" + }, + "FontWeightName": { + "enum": [ + "NORMAL", + "BOLD" + ], + "type": "string" + }, + "ForecastComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "CustomSeasonalityValue": { + "default": null, + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "LowerBoundary": { + "default": null, + "type": "number" + }, + "Name": { + "type": "string" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "$ref": "#/definitions/ForecastComputationSeasonality" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "UpperBoundary": { + "default": null, + "type": "number" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ForecastComputationSeasonality": { + "enum": [ + "AUTOMATIC", + "CUSTOM" + ], + "type": "string" + }, + "ForecastConfiguration": { + "additionalProperties": false, + "properties": { + "ForecastProperties": { + "$ref": "#/definitions/TimeBasedForecastProperties" + }, + "Scenario": { + "$ref": "#/definitions/ForecastScenario" + } + }, + "type": "object" + }, + "ForecastScenario": { + "additionalProperties": false, + "properties": { + "WhatIfPointScenario": { + "$ref": "#/definitions/WhatIfPointScenario" + }, + "WhatIfRangeScenario": { + "$ref": "#/definitions/WhatIfRangeScenario" + } + }, + "type": "object" + }, + "FormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "NumberFormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "StringFormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "type": "object" + }, + "FreeFormLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "FreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FreeFormLayoutElement": { + "additionalProperties": false, + "properties": { + "BackgroundStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBackgroundStyle" + }, + "BorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "LoadingAnimation": { + "$ref": "#/definitions/LoadingAnimation" + }, + "RenderingRules": { + "items": { + "$ref": "#/definitions/SheetElementRenderingRule" + }, + "maxItems": 10000, + "minItems": 0, + "type": "array" + }, + "SelectedBorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "XAxisLocation": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "YAxisLocation": { + "description": "String based length that is composed of value and unit in px with Integer.MAX_VALUE as maximum value", + "type": "string" + } + }, + "required": [ + "ElementId", + "ElementType", + "Height", + "Width", + "XAxisLocation", + "YAxisLocation" + ], + "type": "object" + }, + "FreeFormLayoutElementBackgroundStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutElementBorderStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "required": [ + "OptimizedViewPortWidth" + ], + "type": "object" + }, + "FreeFormSectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FunnelChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabelOptions": { + "$ref": "#/definitions/FunnelChartDataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/FunnelChartFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/FunnelChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "FunnelChartDataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureDataLabelStyle": { + "$ref": "#/definitions/FunnelChartMeasureDataLabelStyle" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FunnelChartFieldWells": { + "additionalProperties": false, + "properties": { + "FunnelChartAggregatedFieldWells": { + "$ref": "#/definitions/FunnelChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "FunnelChartMeasureDataLabelStyle": { + "enum": [ + "VALUE_ONLY", + "PERCENTAGE_BY_FIRST_STAGE", + "PERCENTAGE_BY_PREVIOUS_STAGE", + "VALUE_AND_PERCENTAGE_BY_FIRST_STAGE", + "VALUE_AND_PERCENTAGE_BY_PREVIOUS_STAGE" + ], + "type": "string" + }, + "FunnelChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FunnelChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GaugeChartArcConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/GaugeChartConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/GaugeChartArcConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/GaugeChartPrimaryValueConditionalFormatting" + } + }, + "type": "object" + }, + "GaugeChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/GaugeChartFieldWells" + }, + "GaugeChartOptions": { + "$ref": "#/definitions/GaugeChartOptions" + }, + "TooltipOptions": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "GaugeChartFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartOptions": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/ArcConfiguration" + }, + "ArcAxis": { + "$ref": "#/definitions/ArcAxisConfiguration" + }, + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "GaugeChartPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GaugeChartConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/GaugeChartConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialCoordinateBounds": { + "additionalProperties": false, + "properties": { + "East": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + }, + "North": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "South": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "West": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + } + }, + "required": [ + "East", + "North", + "South", + "West" + ], + "type": "object" + }, + "GeospatialHeatmapColorScale": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/GeospatialHeatmapDataColor" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialHeatmapConfiguration": { + "additionalProperties": false, + "properties": { + "HeatmapColor": { + "$ref": "#/definitions/GeospatialHeatmapColorScale" + } + }, + "type": "object" + }, + "GeospatialHeatmapDataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "GeospatialMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/GeospatialMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "PointStyleOptions": { + "$ref": "#/definitions/GeospatialPointStyleOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "GeospatialMapFieldWells": { + "additionalProperties": false, + "properties": { + "GeospatialMapAggregatedFieldWells": { + "$ref": "#/definitions/GeospatialMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "GeospatialMapStyleOptions": { + "additionalProperties": false, + "properties": { + "BaseMapStyle": { + "$ref": "#/definitions/BaseMapStyleType" + } + }, + "type": "object" + }, + "GeospatialMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GeospatialMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialPointStyleOptions": { + "additionalProperties": false, + "properties": { + "ClusterMarkerConfiguration": { + "$ref": "#/definitions/ClusterMarkerConfiguration" + }, + "HeatmapConfiguration": { + "$ref": "#/definitions/GeospatialHeatmapConfiguration" + }, + "SelectedPointStyle": { + "$ref": "#/definitions/GeospatialSelectedPointStyle" + } + }, + "type": "object" + }, + "GeospatialSelectedPointStyle": { + "enum": [ + "POINT", + "CLUSTER", + "HEATMAP" + ], + "type": "string" + }, + "GeospatialWindowOptions": { + "additionalProperties": false, + "properties": { + "Bounds": { + "$ref": "#/definitions/GeospatialCoordinateBounds" + }, + "MapZoomMode": { + "$ref": "#/definitions/MapZoomMode" + } + }, + "type": "object" + }, + "GlobalTableBorderOptions": { + "additionalProperties": false, + "properties": { + "SideSpecificBorder": { + "$ref": "#/definitions/TableSideBorderOptions" + }, + "UniformBorder": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "GradientColor": { + "additionalProperties": false, + "properties": { + "Stops": { + "items": { + "$ref": "#/definitions/GradientStop" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GradientStop": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + }, + "GradientOffset": { + "default": 0, + "type": "number" + } + }, + "required": [ + "GradientOffset" + ], + "type": "object" + }, + "GridLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "GridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/GridLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "GridLayoutElement": { + "additionalProperties": false, + "properties": { + "ColumnIndex": { + "maximum": 35, + "minimum": 0, + "type": "number" + }, + "ColumnSpan": { + "maximum": 36, + "minimum": 1, + "type": "number" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "RowIndex": { + "maximum": 9009, + "minimum": 0, + "type": "number" + }, + "RowSpan": { + "maximum": 21, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "ColumnSpan", + "ElementId", + "ElementType", + "RowSpan" + ], + "type": "object" + }, + "GridLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "ResizeOption": { + "$ref": "#/definitions/ResizeOption" + } + }, + "required": [ + "ResizeOption" + ], + "type": "object" + }, + "GrowthRateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodSize": { + "default": 0, + "maximum": 52, + "minimum": 2, + "type": "number" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "HeaderFooterSectionConfiguration": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Layout", + "SectionId" + ], + "type": "object" + }, + "HeatMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "ColumnLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HeatMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "RowLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/HeatMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "HeatMapFieldWells": { + "additionalProperties": false, + "properties": { + "HeatMapAggregatedFieldWells": { + "$ref": "#/definitions/HeatMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "HeatMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "HeatMapColumnItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapColumnSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "HeatMapRowItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapRowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HeatMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HistogramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HistogramBinOptions": { + "additionalProperties": false, + "properties": { + "BinCount": { + "$ref": "#/definitions/BinCountOptions" + }, + "BinWidth": { + "$ref": "#/definitions/BinWidthOptions" + }, + "SelectedBinType": { + "$ref": "#/definitions/HistogramBinType" + }, + "StartValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "HistogramBinType": { + "enum": [ + "BIN_COUNT", + "BIN_WIDTH" + ], + "type": "string" + }, + "HistogramConfiguration": { + "additionalProperties": false, + "properties": { + "BinOptions": { + "$ref": "#/definitions/HistogramBinOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HistogramFieldWells" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + } + }, + "type": "object" + }, + "HistogramFieldWells": { + "additionalProperties": false, + "properties": { + "HistogramAggregatedFieldWells": { + "$ref": "#/definitions/HistogramAggregatedFieldWells" + } + }, + "type": "object" + }, + "HistogramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HistogramConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HorizontalTextAlignment": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT", + "AUTO" + ], + "type": "string" + }, + "Icon": { + "enum": [ + "CARET_UP", + "CARET_DOWN", + "PLUS", + "MINUS", + "ARROW_UP", + "ARROW_DOWN", + "ARROW_LEFT", + "ARROW_UP_LEFT", + "ARROW_DOWN_LEFT", + "ARROW_RIGHT", + "ARROW_UP_RIGHT", + "ARROW_DOWN_RIGHT", + "FACE_UP", + "FACE_DOWN", + "FACE_FLAT", + "ONE_BAR", + "TWO_BAR", + "THREE_BAR", + "CIRCLE", + "TRIANGLE", + "SQUARE", + "FLAG", + "THUMBS_UP", + "THUMBS_DOWN", + "CHECKMARK", + "X" + ], + "type": "string" + }, + "InsightConfiguration": { + "additionalProperties": false, + "properties": { + "Computations": { + "items": { + "$ref": "#/definitions/Computation" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "CustomNarrative": { + "$ref": "#/definitions/CustomNarrativeOptions" + } + }, + "type": "object" + }, + "InsightVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "InsightConfiguration": { + "$ref": "#/definitions/InsightConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "IntegerDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "IntegerParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Values": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "IntegerParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/IntegerDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/IntegerValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "IntegerValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "ItemsLimitConfiguration": { + "additionalProperties": false, + "properties": { + "ItemsLimit": { + "default": null, + "type": "number" + }, + "OtherCategories": { + "$ref": "#/definitions/OtherCategories" + } + }, + "type": "object" + }, + "KPIActualValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIComparisonValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/KPIConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "ActualValue": { + "$ref": "#/definitions/KPIActualValueConditionalFormatting" + }, + "ComparisonValue": { + "$ref": "#/definitions/KPIComparisonValueConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/KPIPrimaryValueConditionalFormatting" + }, + "ProgressBar": { + "$ref": "#/definitions/KPIProgressBarConditionalFormatting" + } + }, + "type": "object" + }, + "KPIConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/KPIFieldWells" + }, + "KPIOptions": { + "$ref": "#/definitions/KPIOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/KPISortConfiguration" + } + }, + "type": "object" + }, + "KPIFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TrendGroups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIOptions": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "ProgressBar": { + "$ref": "#/definitions/ProgressBarOptions" + }, + "SecondaryValue": { + "$ref": "#/definitions/SecondaryValueOptions" + }, + "SecondaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Sparkline": { + "$ref": "#/definitions/KPISparklineOptions" + }, + "TrendArrows": { + "$ref": "#/definitions/TrendArrowOptions" + }, + "VisualLayoutOptions": { + "$ref": "#/definitions/KPIVisualLayoutOptions" + } + }, + "type": "object" + }, + "KPIPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIProgressBarConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPISortConfiguration": { + "additionalProperties": false, + "properties": { + "TrendGroupSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPISparklineOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Type": { + "$ref": "#/definitions/KPISparklineType" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPISparklineType": { + "enum": [ + "LINE", + "AREA" + ], + "type": "string" + }, + "KPIVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/KPIConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/KPIConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "KPIVisualLayoutOptions": { + "additionalProperties": false, + "properties": { + "StandardLayout": { + "$ref": "#/definitions/KPIVisualStandardLayout" + } + }, + "type": "object" + }, + "KPIVisualStandardLayout": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/KPIVisualStandardLayoutType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPIVisualStandardLayoutType": { + "enum": [ + "CLASSIC", + "VERTICAL" + ], + "type": "string" + }, + "LabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "Layout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/LayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "LayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormLayoutConfiguration" + }, + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + }, + "SectionBasedLayout": { + "$ref": "#/definitions/SectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "LayoutElementType": { + "enum": [ + "VISUAL", + "FILTER_CONTROL", + "PARAMETER_CONTROL", + "TEXT_BOX" + ], + "type": "string" + }, + "LegendOptions": { + "additionalProperties": false, + "properties": { + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "Position": { + "$ref": "#/definitions/LegendPosition" + }, + "Title": { + "$ref": "#/definitions/LabelOptions" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "type": "object" + }, + "LegendPosition": { + "enum": [ + "AUTO", + "RIGHT", + "BOTTOM", + "TOP" + ], + "type": "string" + }, + "LineChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartConfiguration": { + "additionalProperties": false, + "properties": { + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DefaultSeriesSettings": { + "$ref": "#/definitions/LineChartDefaultSeriesSettings" + }, + "FieldWells": { + "$ref": "#/definitions/LineChartFieldWells" + }, + "ForecastConfigurations": { + "items": { + "$ref": "#/definitions/ForecastConfiguration" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Series": { + "items": { + "$ref": "#/definitions/SeriesItem" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/LineChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "Type": { + "$ref": "#/definitions/LineChartType" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "LineChartDefaultSeriesSettings": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartFieldWells": { + "additionalProperties": false, + "properties": { + "LineChartAggregatedFieldWells": { + "$ref": "#/definitions/LineChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "LineChartLineStyle": { + "enum": [ + "SOLID", + "DOTTED", + "DASHED" + ], + "type": "string" + }, + "LineChartLineStyleSettings": { + "additionalProperties": false, + "properties": { + "LineInterpolation": { + "$ref": "#/definitions/LineInterpolation" + }, + "LineStyle": { + "$ref": "#/definitions/LineChartLineStyle" + }, + "LineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LineWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "type": "object" + }, + "LineChartMarkerShape": { + "enum": [ + "CIRCLE", + "TRIANGLE", + "SQUARE", + "DIAMOND", + "ROUNDED_SQUARE" + ], + "type": "string" + }, + "LineChartMarkerStyleSettings": { + "additionalProperties": false, + "properties": { + "MarkerColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "MarkerShape": { + "$ref": "#/definitions/LineChartMarkerShape" + }, + "MarkerSize": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "MarkerVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LineChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartType": { + "enum": [ + "LINE", + "AREA", + "STACKED_AREA" + ], + "type": "string" + }, + "LineChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/LineChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "LineInterpolation": { + "enum": [ + "LINEAR", + "SMOOTH", + "STEPPED" + ], + "type": "string" + }, + "LineSeriesAxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "MissingDataConfigurations": { + "items": { + "$ref": "#/definitions/MissingDataConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ListControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SearchOptions": { + "$ref": "#/definitions/ListControlSearchOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "ListControlSearchOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ListControlSelectAllOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LoadingAnimation": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LocalNavigationConfiguration": { + "additionalProperties": false, + "properties": { + "TargetSheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "TargetSheetId" + ], + "type": "object" + }, + "LongFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "MapZoomMode": { + "enum": [ + "AUTO", + "MANUAL" + ], + "type": "string" + }, + "MappedDataSetParameter": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DataSetParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "DataSetParameterName" + ], + "type": "object" + }, + "MaximumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MaximumMinimumComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/MaximumMinimumComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "MaximumMinimumComputationType": { + "enum": [ + "MAXIMUM", + "MINIMUM" + ], + "type": "string" + }, + "MeasureField": { + "additionalProperties": false, + "properties": { + "CalculatedMeasureField": { + "$ref": "#/definitions/CalculatedMeasureField" + }, + "CategoricalMeasureField": { + "$ref": "#/definitions/CategoricalMeasureField" + }, + "DateMeasureField": { + "$ref": "#/definitions/DateMeasureField" + }, + "NumericalMeasureField": { + "$ref": "#/definitions/NumericalMeasureField" + } + }, + "type": "object" + }, + "MetricComparisonComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "FromValue": { + "$ref": "#/definitions/MeasureField" + }, + "Name": { + "type": "string" + }, + "TargetValue": { + "$ref": "#/definitions/MeasureField" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "MinimumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MissingDataConfiguration": { + "additionalProperties": false, + "properties": { + "TreatmentOption": { + "$ref": "#/definitions/MissingDataTreatmentOption" + } + }, + "type": "object" + }, + "MissingDataTreatmentOption": { + "enum": [ + "INTERPOLATE", + "SHOW_AS_ZERO", + "SHOW_AS_BLANK" + ], + "type": "string" + }, + "NegativeValueConfiguration": { + "additionalProperties": false, + "properties": { + "DisplayMode": { + "$ref": "#/definitions/NegativeValueDisplayMode" + } + }, + "required": [ + "DisplayMode" + ], + "type": "object" + }, + "NegativeValueDisplayMode": { + "enum": [ + "POSITIVE", + "NEGATIVE" + ], + "type": "string" + }, + "NullValueFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullString": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "NullString" + ], + "type": "object" + }, + "NumberDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "NumberFormatConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "NumberScale": { + "enum": [ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ], + "type": "string" + }, + "NumericAxisOptions": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/AxisDisplayRange" + }, + "Scale": { + "$ref": "#/definitions/AxisScale" + } + }, + "type": "object" + }, + "NumericEqualityDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Column", + "Value" + ], + "type": "object" + }, + "NumericEqualityFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/NumericEqualityMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + }, + "Value": { + "default": null, + "type": "number" + } + }, + "required": [ + "Column", + "FilterId", + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "NumericEqualityMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL" + ], + "type": "string" + }, + "NumericFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "NumericFormatConfiguration": { + "additionalProperties": false, + "properties": { + "CurrencyDisplayFormatConfiguration": { + "$ref": "#/definitions/CurrencyDisplayFormatConfiguration" + }, + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "NumericRangeFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "RangeMinimum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "NumericRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StaticValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "NumericSeparatorConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalSeparator": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "ThousandsSeparator": { + "$ref": "#/definitions/ThousandSeparatorOptions" + } + }, + "type": "object" + }, + "NumericSeparatorSymbol": { + "enum": [ + "COMMA", + "DOT", + "SPACE" + ], + "type": "string" + }, + "NumericalAggregationFunction": { + "additionalProperties": false, + "properties": { + "PercentileAggregation": { + "$ref": "#/definitions/PercentileAggregation" + }, + "SimpleNumericalAggregation": { + "$ref": "#/definitions/SimpleNumericalAggregationFunction" + } + }, + "type": "object" + }, + "NumericalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "NumericalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "OtherCategories": { + "enum": [ + "INCLUDE", + "EXCLUDE" + ], + "type": "string" + }, + "PaginationConfiguration": { + "additionalProperties": false, + "properties": { + "PageNumber": { + "minimum": 0, + "type": "number" + }, + "PageSize": { + "default": null, + "type": "number" + } + }, + "required": [ + "PageNumber", + "PageSize" + ], + "type": "object" + }, + "PanelBorderStyle": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "PanelConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BackgroundVisibility": { + "$ref": "#/definitions/Visibility" + }, + "BorderColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BorderStyle": { + "$ref": "#/definitions/PanelBorderStyle" + }, + "BorderThickness": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "BorderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "GutterSpacing": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "GutterVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Title": { + "$ref": "#/definitions/PanelTitleOptions" + } + }, + "type": "object" + }, + "PanelTitleOptions": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PaperOrientation": { + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "type": "string" + }, + "PaperSize": { + "enum": [ + "US_LETTER", + "US_LEGAL", + "US_TABLOID_LEDGER", + "A0", + "A1", + "A2", + "A3", + "A4", + "A5", + "JIS_B4", + "JIS_B5" + ], + "type": "string" + }, + "ParameterControl": { + "additionalProperties": false, + "properties": { + "DateTimePicker": { + "$ref": "#/definitions/ParameterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/ParameterDropDownControl" + }, + "List": { + "$ref": "#/definitions/ParameterListControl" + }, + "Slider": { + "$ref": "#/definitions/ParameterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/ParameterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/ParameterTextFieldControl" + } + }, + "type": "object" + }, + "ParameterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DateTimeParameterDeclaration": { + "$ref": "#/definitions/DateTimeParameterDeclaration" + }, + "DecimalParameterDeclaration": { + "$ref": "#/definitions/DecimalParameterDeclaration" + }, + "IntegerParameterDeclaration": { + "$ref": "#/definitions/IntegerParameterDeclaration" + }, + "StringParameterDeclaration": { + "$ref": "#/definitions/StringParameterDeclaration" + } + }, + "type": "object" + }, + "ParameterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterSelectableValues": { + "additionalProperties": false, + "properties": { + "LinkToDataSetColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ParameterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MaximumValue", + "MinimumValue", + "ParameterControlId", + "SourceParameterName", + "StepSize", + "Title" + ], + "type": "object" + }, + "ParameterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterValueType": { + "enum": [ + "MULTI_VALUED", + "SINGLE_VALUED" + ], + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "properties": { + "DateTimeParameters": { + "items": { + "$ref": "#/definitions/DateTimeParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "DecimalParameters": { + "items": { + "$ref": "#/definitions/DecimalParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "IntegerParameters": { + "items": { + "$ref": "#/definitions/IntegerParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "StringParameters": { + "items": { + "$ref": "#/definitions/StringParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PercentVisibleRange": { + "additionalProperties": false, + "properties": { + "From": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "To": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PercentageDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PercentileAggregation": { + "additionalProperties": false, + "properties": { + "PercentileValue": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PeriodOverPeriodComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PeriodToDateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodTimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PieChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DonutOptions": { + "$ref": "#/definitions/DonutOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PieChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PieChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "PieChartFieldWells": { + "additionalProperties": false, + "properties": { + "PieChartAggregatedFieldWells": { + "$ref": "#/definitions/PieChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "PieChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PieChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotFieldSortOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SortBy": { + "$ref": "#/definitions/PivotTableSortBy" + } + }, + "required": [ + "FieldId", + "SortBy" + ], + "type": "object" + }, + "PivotTableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "Scopes": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/PivotTableCellConditionalFormatting" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScope": { + "additionalProperties": false, + "properties": { + "Role": { + "$ref": "#/definitions/PivotTableConditionalFormattingScopeRole" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScopeRole": { + "enum": [ + "FIELD", + "FIELD_TOTAL", + "GRAND_TOTAL" + ], + "type": "string" + }, + "PivotTableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/PivotTableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PivotTableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/PivotTablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PivotTableSortConfiguration" + }, + "TableOptions": { + "$ref": "#/definitions/PivotTableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/PivotTableTotalOptions" + } + }, + "type": "object" + }, + "PivotTableDataPathOption": { + "additionalProperties": false, + "properties": { + "DataPathList": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "required": [ + "DataPathList" + ], + "type": "object" + }, + "PivotTableDataPathType": { + "enum": [ + "HIERARCHY_ROWS_LAYOUT_COLUMN", + "MULTIPLE_ROW_METRICS_COLUMN", + "EMPTY_COLUMN_HEADER", + "COUNT_METRIC_COLUMN" + ], + "type": "string" + }, + "PivotTableFieldCollapseState": { + "enum": [ + "COLLAPSED", + "EXPANDED" + ], + "type": "string" + }, + "PivotTableFieldCollapseStateOption": { + "additionalProperties": false, + "properties": { + "State": { + "$ref": "#/definitions/PivotTableFieldCollapseState" + }, + "Target": { + "$ref": "#/definitions/PivotTableFieldCollapseStateTarget" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "PivotTableFieldCollapseStateTarget": { + "additionalProperties": false, + "properties": { + "FieldDataPathValues": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "FieldId": { + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableFieldOptions": { + "additionalProperties": false, + "properties": { + "CollapseStateOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldCollapseStateOption" + }, + "type": "array" + }, + "DataPathOptions": { + "items": { + "$ref": "#/definitions/PivotTableDataPathOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableFieldSubtotalOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldWells": { + "additionalProperties": false, + "properties": { + "PivotTableAggregatedFieldWells": { + "$ref": "#/definitions/PivotTableAggregatedFieldWells" + } + }, + "type": "object" + }, + "PivotTableMetricPlacement": { + "enum": [ + "ROW", + "COLUMN" + ], + "type": "string" + }, + "PivotTableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "CollapsedRowDimensionsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ColumnHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "ColumnNamesVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DefaultCellWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "MetricPlacement": { + "$ref": "#/definitions/PivotTableMetricPlacement" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + }, + "RowFieldNamesStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowsLabelOptions": { + "$ref": "#/definitions/PivotTableRowsLabelOptions" + }, + "RowsLayout": { + "$ref": "#/definitions/PivotTableRowsLayout" + }, + "SingleMetricVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ToggleButtonsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLayout": { + "enum": [ + "TABULAR", + "HIERARCHY" + ], + "type": "string" + }, + "PivotTableSortBy": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnSort" + }, + "DataPath": { + "$ref": "#/definitions/DataPathSort" + }, + "Field": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "PivotTableSortConfiguration": { + "additionalProperties": false, + "properties": { + "FieldSortOptions": { + "items": { + "$ref": "#/definitions/PivotFieldSortOptions" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableSubtotalLevel": { + "enum": [ + "ALL", + "CUSTOM", + "LAST" + ], + "type": "string" + }, + "PivotTableTotalOptions": { + "additionalProperties": false, + "properties": { + "ColumnSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "ColumnTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + }, + "RowSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "RowTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + } + }, + "type": "object" + }, + "PivotTableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PivotTableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/PivotTableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotTotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "PredefinedHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "PrimaryValueDisplayType": { + "enum": [ + "HIDDEN", + "COMPARISON", + "ACTUAL" + ], + "type": "string" + }, + "ProgressBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Color": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartAreaStyleSettings": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAxesRangeScale": { + "enum": [ + "AUTO", + "INDEPENDENT", + "SHARED" + ], + "type": "string" + }, + "RadarChartConfiguration": { + "additionalProperties": false, + "properties": { + "AlternateBandColorsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AlternateBandEvenColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AlternateBandOddColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AxesRangeScale": { + "$ref": "#/definitions/RadarChartAxesRangeScale" + }, + "BaseSeriesSettings": { + "$ref": "#/definitions/RadarChartSeriesSettings" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/RadarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Shape": { + "$ref": "#/definitions/RadarChartShape" + }, + "SortConfiguration": { + "$ref": "#/definitions/RadarChartSortConfiguration" + }, + "StartAngle": { + "maximum": 360, + "minimum": -360, + "type": "number" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "RadarChartFieldWells": { + "additionalProperties": false, + "properties": { + "RadarChartAggregatedFieldWells": { + "$ref": "#/definitions/RadarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "RadarChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "AreaStyleSettings": { + "$ref": "#/definitions/RadarChartAreaStyleSettings" + } + }, + "type": "object" + }, + "RadarChartShape": { + "enum": [ + "CIRCLE", + "POLYGON" + ], + "type": "string" + }, + "RadarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/RadarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "RangeEndsLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ReferenceLine": { + "additionalProperties": false, + "properties": { + "DataConfiguration": { + "$ref": "#/definitions/ReferenceLineDataConfiguration" + }, + "LabelConfiguration": { + "$ref": "#/definitions/ReferenceLineLabelConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "StyleConfiguration": { + "$ref": "#/definitions/ReferenceLineStyleConfiguration" + } + }, + "required": [ + "DataConfiguration" + ], + "type": "object" + }, + "ReferenceLineCustomLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "CustomLabel" + ], + "type": "object" + }, + "ReferenceLineDataConfiguration": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "DynamicConfiguration": { + "$ref": "#/definitions/ReferenceLineDynamicDataConfiguration" + }, + "SeriesType": { + "$ref": "#/definitions/ReferenceLineSeriesType" + }, + "StaticConfiguration": { + "$ref": "#/definitions/ReferenceLineStaticDataConfiguration" + } + }, + "type": "object" + }, + "ReferenceLineDynamicDataConfiguration": { + "additionalProperties": false, + "properties": { + "Calculation": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "MeasureAggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + } + }, + "required": [ + "Calculation", + "Column" + ], + "type": "object" + }, + "ReferenceLineLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineCustomLabelConfiguration" + }, + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalPosition": { + "$ref": "#/definitions/ReferenceLineLabelHorizontalPosition" + }, + "ValueLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineValueLabelConfiguration" + }, + "VerticalPosition": { + "$ref": "#/definitions/ReferenceLineLabelVerticalPosition" + } + }, + "type": "object" + }, + "ReferenceLineLabelHorizontalPosition": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "ReferenceLineLabelVerticalPosition": { + "enum": [ + "ABOVE", + "BELOW" + ], + "type": "string" + }, + "ReferenceLinePatternType": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "ReferenceLineSeriesType": { + "enum": [ + "BAR", + "LINE" + ], + "type": "string" + }, + "ReferenceLineStaticDataConfiguration": { + "additionalProperties": false, + "properties": { + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "ReferenceLineStyleConfiguration": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Pattern": { + "$ref": "#/definitions/ReferenceLinePatternType" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + }, + "RelativePosition": { + "$ref": "#/definitions/ReferenceLineValueLabelRelativePosition" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelRelativePosition": { + "enum": [ + "BEFORE_CUSTOM_LABEL", + "AFTER_CUSTOM_LABEL" + ], + "type": "string" + }, + "RelativeDateTimeControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "RelativeDateType": { + "enum": [ + "PREVIOUS", + "THIS", + "LAST", + "NOW", + "NEXT" + ], + "type": "string" + }, + "RelativeDatesFilter": { + "additionalProperties": false, + "properties": { + "AnchorDateConfiguration": { + "$ref": "#/definitions/AnchorDateConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MinimumGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RelativeDateType": { + "$ref": "#/definitions/RelativeDateType" + }, + "RelativeDateValue": { + "default": null, + "type": "number" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AnchorDateConfiguration", + "Column", + "FilterId", + "NullOption", + "RelativeDateType", + "TimeGranularity" + ], + "type": "object" + }, + "RelativeFontSize": { + "enum": [ + "EXTRA_SMALL", + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ], + "type": "string" + }, + "ResizeOption": { + "enum": [ + "FIXED", + "RESPONSIVE" + ], + "type": "string" + }, + "ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + }, + "Principal": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "ResourceStatus": { + "enum": [ + "CREATION_IN_PROGRESS", + "CREATION_SUCCESSFUL", + "CREATION_FAILED", + "UPDATE_IN_PROGRESS", + "UPDATE_SUCCESSFUL", + "UPDATE_FAILED", + "DELETED" + ], + "type": "string" + }, + "RollingDateConfiguration": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "RowAlternateColorOptions": { + "additionalProperties": false, + "properties": { + "RowAlternateColors": { + "items": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "UsePrimaryBackgroundColor": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "type": "object" + }, + "SameSheetTargetVisualConfiguration": { + "additionalProperties": false, + "properties": { + "TargetVisualOptions": { + "$ref": "#/definitions/TargetVisualOptions" + }, + "TargetVisuals": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Destination": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Source": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Weight": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/SankeyDiagramFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/SankeyDiagramSortConfiguration" + } + }, + "type": "object" + }, + "SankeyDiagramFieldWells": { + "additionalProperties": false, + "properties": { + "SankeyDiagramAggregatedFieldWells": { + "$ref": "#/definitions/SankeyDiagramAggregatedFieldWells" + } + }, + "type": "object" + }, + "SankeyDiagramSortConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SourceItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "WeightSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/SankeyDiagramChartConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScatterPlotCategoricallyAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ScatterPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "YAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "ScatterPlotFieldWells": { + "additionalProperties": false, + "properties": { + "ScatterPlotCategoricallyAggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotCategoricallyAggregatedFieldWells" + }, + "ScatterPlotUnaggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "ScatterPlotUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ScatterPlotConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScrollBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "VisibleRange": { + "$ref": "#/definitions/VisibleRangeOptions" + } + }, + "type": "object" + }, + "SecondaryValueOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SectionAfterPageBreak": { + "additionalProperties": false, + "properties": { + "Status": { + "$ref": "#/definitions/SectionPageBreakStatus" + } + }, + "type": "object" + }, + "SectionBasedLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperCanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutPaperCanvasSizeOptions" + } + }, + "type": "object" + }, + "SectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "BodySections": { + "items": { + "$ref": "#/definitions/BodySectionConfiguration" + }, + "maxItems": 28, + "minItems": 0, + "type": "array" + }, + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + }, + "FooterSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "HeaderSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "BodySections", + "CanvasSizeOptions", + "FooterSections", + "HeaderSections" + ], + "type": "object" + }, + "SectionBasedLayoutPaperCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperMargin": { + "$ref": "#/definitions/Spacing" + }, + "PaperOrientation": { + "$ref": "#/definitions/PaperOrientation" + }, + "PaperSize": { + "$ref": "#/definitions/PaperSize" + } + }, + "type": "object" + }, + "SectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormSectionLayoutConfiguration" + } + }, + "required": [ + "FreeFormLayout" + ], + "type": "object" + }, + "SectionPageBreakConfiguration": { + "additionalProperties": false, + "properties": { + "After": { + "$ref": "#/definitions/SectionAfterPageBreak" + } + }, + "type": "object" + }, + "SectionPageBreakStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "SectionStyle": { + "additionalProperties": false, + "properties": { + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "Padding": { + "$ref": "#/definitions/Spacing" + } + }, + "type": "object" + }, + "SelectAllValueOptions": { + "enum": [ + "ALL_VALUES" + ], + "type": "string" + }, + "SelectedFieldOptions": { + "enum": [ + "ALL_FIELDS" + ], + "type": "string" + }, + "SelectedSheetsFilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "SheetVisualScopingConfigurations": { + "items": { + "$ref": "#/definitions/SheetVisualScopingConfiguration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SelectedTooltipType": { + "enum": [ + "BASIC", + "DETAILED" + ], + "type": "string" + }, + "SeriesItem": { + "additionalProperties": false, + "properties": { + "DataFieldSeriesItem": { + "$ref": "#/definitions/DataFieldSeriesItem" + }, + "FieldSeriesItem": { + "$ref": "#/definitions/FieldSeriesItem" + } + }, + "type": "object" + }, + "SetParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/DestinationParameterValueConfiguration" + } + }, + "required": [ + "DestinationParameterName", + "Value" + ], + "type": "object" + }, + "ShapeConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "required": [ + "BackgroundColor" + ], + "type": "object" + }, + "Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "type": "object" + }, + "SheetContentType": { + "enum": [ + "PAGINATED", + "INTERACTIVE" + ], + "type": "string" + }, + "SheetControlDateTimePickerType": { + "enum": [ + "SINGLE_VALUED", + "DATE_RANGE" + ], + "type": "string" + }, + "SheetControlInfoIconLabelOptions": { + "additionalProperties": false, + "properties": { + "InfoIconText": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetControlLayout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/SheetControlLayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "SheetControlLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + } + }, + "type": "object" + }, + "SheetControlListType": { + "enum": [ + "MULTI_SELECT", + "SINGLE_SELECT" + ], + "type": "string" + }, + "SheetControlSliderType": { + "enum": [ + "SINGLE_POINT", + "RANGE" + ], + "type": "string" + }, + "SheetDefinition": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/SheetContentType" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "FilterControls": { + "items": { + "$ref": "#/definitions/FilterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Layouts": { + "items": { + "$ref": "#/definitions/Layout" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ParameterControls": { + "items": { + "$ref": "#/definitions/ParameterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SheetControlLayouts": { + "items": { + "$ref": "#/definitions/SheetControlLayout" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "TextBoxes": { + "items": { + "$ref": "#/definitions/SheetTextBox" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Title": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visuals": { + "items": { + "$ref": "#/definitions/Visual" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "SheetId" + ], + "type": "object" + }, + "SheetElementConfigurationOverrides": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetElementRenderingRule": { + "additionalProperties": false, + "properties": { + "ConfigurationOverrides": { + "$ref": "#/definitions/SheetElementConfigurationOverrides" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ConfigurationOverrides", + "Expression" + ], + "type": "object" + }, + "SheetTextBox": { + "additionalProperties": false, + "properties": { + "Content": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + }, + "SheetTextBoxId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "SheetTextBoxId" + ], + "type": "object" + }, + "SheetVisualScopingConfiguration": { + "additionalProperties": false, + "properties": { + "Scope": { + "$ref": "#/definitions/FilterVisualScope" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "VisualIds": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Scope", + "SheetId" + ], + "type": "object" + }, + "ShortFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SimpleAttributeAggregationFunction": { + "enum": [ + "UNIQUE_VALUE" + ], + "type": "string" + }, + "SimpleClusterMarker": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + }, + "SimpleNumericalAggregationFunction": { + "enum": [ + "SUM", + "AVERAGE", + "MIN", + "MAX", + "COUNT", + "DISTINCT_COUNT", + "VAR", + "VARP", + "STDEV", + "STDEVP", + "MEDIAN" + ], + "type": "string" + }, + "SimpleTotalAggregationFunction": { + "enum": [ + "DEFAULT", + "SUM", + "AVERAGE", + "MIN", + "MAX", + "NONE" + ], + "type": "string" + }, + "SliderControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "SmallMultiplesAxisPlacement": { + "enum": [ + "OUTSIDE", + "INSIDE" + ], + "type": "string" + }, + "SmallMultiplesAxisProperties": { + "additionalProperties": false, + "properties": { + "Placement": { + "$ref": "#/definitions/SmallMultiplesAxisPlacement" + }, + "Scale": { + "$ref": "#/definitions/SmallMultiplesAxisScale" + } + }, + "type": "object" + }, + "SmallMultiplesAxisScale": { + "enum": [ + "SHARED", + "INDEPENDENT" + ], + "type": "string" + }, + "SmallMultiplesOptions": { + "additionalProperties": false, + "properties": { + "MaxVisibleColumns": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "MaxVisibleRows": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "PanelConfiguration": { + "$ref": "#/definitions/PanelConfiguration" + }, + "XAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + }, + "YAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + } + }, + "type": "object" + }, + "SortDirection": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + }, + "Spacing": { + "additionalProperties": false, + "properties": { + "Bottom": { + "description": "String based length that is composed of value and unit", + "type": "string" + }, + "Left": { + "description": "String based length that is composed of value and unit", + "type": "string" + }, + "Right": { + "description": "String based length that is composed of value and unit", + "type": "string" + }, + "Top": { + "description": "String based length that is composed of value and unit", + "type": "string" + } + }, + "type": "object" + }, + "SpecialValue": { + "enum": [ + "EMPTY", + "NULL", + "OTHER" + ], + "type": "string" + }, + "StringDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "StringFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "StringParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "StringParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/StringDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/StringValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "StringValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "StyledCellType": { + "enum": [ + "TOTAL", + "METRIC_HEADER", + "VALUE" + ], + "type": "string" + }, + "SubtotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FieldLevel": { + "$ref": "#/definitions/PivotTableSubtotalLevel" + }, + "FieldLevelOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldSubtotalOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "StyleTargets": { + "items": { + "$ref": "#/definitions/TableStyleTarget" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "TableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableBorderOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/TableBorderStyle" + }, + "Thickness": { + "maximum": 4, + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "TableBorderStyle": { + "enum": [ + "NONE", + "SOLID" + ], + "type": "string" + }, + "TableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableCellImageScalingConfiguration": { + "enum": [ + "FIT_TO_CELL_HEIGHT", + "FIT_TO_CELL_WIDTH", + "DO_NOT_SCALE" + ], + "type": "string" + }, + "TableCellImageSizingConfiguration": { + "additionalProperties": false, + "properties": { + "TableCellImageScalingConfiguration": { + "$ref": "#/definitions/TableCellImageScalingConfiguration" + } + }, + "type": "object" + }, + "TableCellStyle": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Border": { + "$ref": "#/definitions/GlobalTableBorderOptions" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Height": { + "maximum": 500, + "minimum": 8, + "type": "number" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "TextWrap": { + "$ref": "#/definitions/TextWrap" + }, + "VerticalTextAlignment": { + "$ref": "#/definitions/VerticalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/TableConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/TableCellConditionalFormatting" + }, + "Row": { + "$ref": "#/definitions/TableRowConditionalFormatting" + } + }, + "type": "object" + }, + "TableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/TableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/TablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TableSortConfiguration" + }, + "TableInlineVisualizations": { + "items": { + "$ref": "#/definitions/TableInlineVisualization" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TableOptions": { + "$ref": "#/definitions/TableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/TotalOptions" + } + }, + "type": "object" + }, + "TableFieldCustomIconContent": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/TableFieldIconSetType" + } + }, + "type": "object" + }, + "TableFieldCustomTextContent": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "FontConfiguration" + ], + "type": "object" + }, + "TableFieldIconSetType": { + "enum": [ + "LINK" + ], + "type": "string" + }, + "TableFieldImageConfiguration": { + "additionalProperties": false, + "properties": { + "SizingOptions": { + "$ref": "#/definitions/TableCellImageSizingConfiguration" + } + }, + "type": "object" + }, + "TableFieldLinkConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/TableFieldLinkContentConfiguration" + }, + "Target": { + "$ref": "#/definitions/URLTargetConfiguration" + } + }, + "required": [ + "Content", + "Target" + ], + "type": "object" + }, + "TableFieldLinkContentConfiguration": { + "additionalProperties": false, + "properties": { + "CustomIconContent": { + "$ref": "#/definitions/TableFieldCustomIconContent" + }, + "CustomTextContent": { + "$ref": "#/definitions/TableFieldCustomTextContent" + } + }, + "type": "object" + }, + "TableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "URLStyling": { + "$ref": "#/definitions/TableFieldURLConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableFieldOptions": { + "additionalProperties": false, + "properties": { + "Order": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "PinnedFieldOptions": { + "$ref": "#/definitions/TablePinnedFieldOptions" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/TableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableFieldURLConfiguration": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/TableFieldImageConfiguration" + }, + "LinkConfiguration": { + "$ref": "#/definitions/TableFieldLinkConfiguration" + } + }, + "type": "object" + }, + "TableFieldWells": { + "additionalProperties": false, + "properties": { + "TableAggregatedFieldWells": { + "$ref": "#/definitions/TableAggregatedFieldWells" + }, + "TableUnaggregatedFieldWells": { + "$ref": "#/definitions/TableUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "TableInlineVisualization": { + "additionalProperties": false, + "properties": { + "DataBars": { + "$ref": "#/definitions/DataBarsOptions" + } + }, + "type": "object" + }, + "TableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "HeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Orientation": { + "$ref": "#/definitions/TableOrientation" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + } + }, + "type": "object" + }, + "TableOrientation": { + "enum": [ + "VERTICAL", + "HORIZONTAL" + ], + "type": "string" + }, + "TablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TablePinnedFieldOptions": { + "additionalProperties": false, + "properties": { + "PinnedLeftFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 201, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableRowConditionalFormatting": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TableSideBorderOptions": { + "additionalProperties": false, + "properties": { + "Bottom": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerHorizontal": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerVertical": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Left": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Right": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Top": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "TableSortConfiguration": { + "additionalProperties": false, + "properties": { + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + }, + "RowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableStyleTarget": { + "additionalProperties": false, + "properties": { + "CellType": { + "$ref": "#/definitions/StyledCellType" + } + }, + "required": [ + "CellType" + ], + "type": "object" + }, + "TableTotalsPlacement": { + "enum": [ + "START", + "END", + "AUTO" + ], + "type": "string" + }, + "TableTotalsScrollStatus": { + "enum": [ + "PINNED", + "SCROLLED" + ], + "type": "string" + }, + "TableUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/UnaggregatedField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/TableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TargetVisualOptions": { + "enum": [ + "ALL_VISUALS" + ], + "type": "string" + }, + "TextAreaControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TextControlPlaceholderOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TextFieldControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextWrap": { + "enum": [ + "NONE", + "WRAP" + ], + "type": "string" + }, + "ThousandSeparatorOptions": { + "additionalProperties": false, + "properties": { + "Symbol": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TimeBasedForecastProperties": { + "additionalProperties": false, + "properties": { + "LowerBoundary": { + "default": null, + "type": "number" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "UpperBoundary": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "TimeEqualityFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Value": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "Column", + "FilterId" + ], + "type": "object" + }, + "TimeGranularity": { + "enum": [ + "YEAR", + "QUARTER", + "MONTH", + "WEEK", + "DAY", + "HOUR", + "MINUTE", + "SECOND", + "MILLISECOND" + ], + "type": "string" + }, + "TimeRangeDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "RangeMaximum": { + "format": "date-time", + "type": "string" + }, + "RangeMinimum": { + "format": "date-time", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "RangeMaximum", + "RangeMinimum", + "TimeGranularity" + ], + "type": "object" + }, + "TimeRangeFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "RangeMinimumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "TimeRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValue": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "TooltipItem": { + "additionalProperties": false, + "properties": { + "ColumnTooltipItem": { + "$ref": "#/definitions/ColumnTooltipItem" + }, + "FieldTooltipItem": { + "$ref": "#/definitions/FieldTooltipItem" + } + }, + "type": "object" + }, + "TooltipOptions": { + "additionalProperties": false, + "properties": { + "FieldBasedTooltip": { + "$ref": "#/definitions/FieldBasedTooltip" + }, + "SelectedTooltipType": { + "$ref": "#/definitions/SelectedTooltipType" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TooltipTitleType": { + "enum": [ + "NONE", + "PRIMARY_VALUE" + ], + "type": "string" + }, + "TopBottomComputationType": { + "enum": [ + "TOP", + "BOTTOM" + ], + "type": "string" + }, + "TopBottomFilter": { + "additionalProperties": false, + "properties": { + "AggregationSortConfigurations": { + "items": { + "$ref": "#/definitions/AggregationSortConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Limit": { + "default": null, + "type": "number" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AggregationSortConfigurations", + "Column", + "FilterId" + ], + "type": "object" + }, + "TopBottomMoversComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MoverSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Name": { + "type": "string" + }, + "SortOrder": { + "$ref": "#/definitions/TopBottomSortOrder" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomRankedComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResultSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomSortOrder": { + "enum": [ + "PERCENT_DIFFERENCE", + "ABSOLUTE_DIFFERENCE" + ], + "type": "string" + }, + "TotalAggregationComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "TotalAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleTotalAggregationFunction": { + "$ref": "#/definitions/SimpleTotalAggregationFunction" + } + }, + "type": "object" + }, + "TotalAggregationOption": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TotalAggregationFunction": { + "$ref": "#/definitions/TotalAggregationFunction" + } + }, + "required": [ + "FieldId", + "TotalAggregationFunction" + ], + "type": "object" + }, + "TotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TreeMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Groups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Sizes": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TreeMapFieldWells" + }, + "GroupLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SizeLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TreeMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "TreeMapFieldWells": { + "additionalProperties": false, + "properties": { + "TreeMapAggregatedFieldWells": { + "$ref": "#/definitions/TreeMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "TreeMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "TreeMapGroupItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "TreeMapSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TreeMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "TrendArrowOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "URLTargetConfiguration": { + "enum": [ + "NEW_TAB", + "NEW_WINDOW", + "SAME_TAB" + ], + "type": "string" + }, + "UnaggregatedField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "UniqueValuesComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ValidationStrategy": { + "additionalProperties": false, + "properties": { + "Mode": { + "$ref": "#/definitions/ValidationStrategyMode" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ValidationStrategyMode": { + "enum": [ + "STRICT", + "LENIENT" + ], + "type": "string" + }, + "ValueWhenUnsetOption": { + "enum": [ + "RECOMMENDED_VALUE", + "NULL" + ], + "type": "string" + }, + "VerticalTextAlignment": { + "enum": [ + "TOP", + "MIDDLE", + "BOTTOM", + "AUTO" + ], + "type": "string" + }, + "Visibility": { + "enum": [ + "HIDDEN", + "VISIBLE" + ], + "type": "string" + }, + "VisibleRangeOptions": { + "additionalProperties": false, + "properties": { + "PercentRange": { + "$ref": "#/definitions/PercentVisibleRange" + } + }, + "type": "object" + }, + "Visual": { + "additionalProperties": false, + "properties": { + "BarChartVisual": { + "$ref": "#/definitions/BarChartVisual" + }, + "BoxPlotVisual": { + "$ref": "#/definitions/BoxPlotVisual" + }, + "ComboChartVisual": { + "$ref": "#/definitions/ComboChartVisual" + }, + "CustomContentVisual": { + "$ref": "#/definitions/CustomContentVisual" + }, + "EmptyVisual": { + "$ref": "#/definitions/EmptyVisual" + }, + "FilledMapVisual": { + "$ref": "#/definitions/FilledMapVisual" + }, + "FunnelChartVisual": { + "$ref": "#/definitions/FunnelChartVisual" + }, + "GaugeChartVisual": { + "$ref": "#/definitions/GaugeChartVisual" + }, + "GeospatialMapVisual": { + "$ref": "#/definitions/GeospatialMapVisual" + }, + "HeatMapVisual": { + "$ref": "#/definitions/HeatMapVisual" + }, + "HistogramVisual": { + "$ref": "#/definitions/HistogramVisual" + }, + "InsightVisual": { + "$ref": "#/definitions/InsightVisual" + }, + "KPIVisual": { + "$ref": "#/definitions/KPIVisual" + }, + "LineChartVisual": { + "$ref": "#/definitions/LineChartVisual" + }, + "PieChartVisual": { + "$ref": "#/definitions/PieChartVisual" + }, + "PivotTableVisual": { + "$ref": "#/definitions/PivotTableVisual" + }, + "RadarChartVisual": { + "$ref": "#/definitions/RadarChartVisual" + }, + "SankeyDiagramVisual": { + "$ref": "#/definitions/SankeyDiagramVisual" + }, + "ScatterPlotVisual": { + "$ref": "#/definitions/ScatterPlotVisual" + }, + "TableVisual": { + "$ref": "#/definitions/TableVisual" + }, + "TreeMapVisual": { + "$ref": "#/definitions/TreeMapVisual" + }, + "WaterfallVisual": { + "$ref": "#/definitions/WaterfallVisual" + }, + "WordCloudVisual": { + "$ref": "#/definitions/WordCloudVisual" + } + }, + "type": "object" + }, + "VisualCustomAction": { + "additionalProperties": false, + "properties": { + "ActionOperations": { + "items": { + "$ref": "#/definitions/VisualCustomActionOperation" + }, + "maxItems": 2, + "minItems": 1, + "type": "array" + }, + "CustomActionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "Trigger": { + "$ref": "#/definitions/VisualCustomActionTrigger" + } + }, + "required": [ + "ActionOperations", + "CustomActionId", + "Name", + "Trigger" + ], + "type": "object" + }, + "VisualCustomActionOperation": { + "additionalProperties": false, + "properties": { + "FilterOperation": { + "$ref": "#/definitions/CustomActionFilterOperation" + }, + "NavigationOperation": { + "$ref": "#/definitions/CustomActionNavigationOperation" + }, + "SetParametersOperation": { + "$ref": "#/definitions/CustomActionSetParametersOperation" + }, + "URLOperation": { + "$ref": "#/definitions/CustomActionURLOperation" + } + }, + "type": "object" + }, + "VisualCustomActionTrigger": { + "enum": [ + "DATA_POINT_CLICK", + "DATA_POINT_MENU" + ], + "type": "string" + }, + "VisualPalette": { + "additionalProperties": false, + "properties": { + "ChartColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "ColorMap": { + "items": { + "$ref": "#/definitions/DataPathColor" + }, + "maxItems": 5000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "VisualSubtitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/LongFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "VisualTitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/ShortFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "WaterfallChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Breakdowns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Categories": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WaterfallChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/WaterfallChartSortConfiguration" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WaterfallChartOptions": { + "$ref": "#/definitions/WaterfallChartOptions" + } + }, + "type": "object" + }, + "WaterfallChartFieldWells": { + "additionalProperties": false, + "properties": { + "WaterfallChartAggregatedFieldWells": { + "$ref": "#/definitions/WaterfallChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "WaterfallChartOptions": { + "additionalProperties": false, + "properties": { + "TotalBarLabel": { + "type": "string" + } + }, + "type": "object" + }, + "WaterfallChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "BreakdownItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WaterfallChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WhatIfPointScenario": { + "additionalProperties": false, + "properties": { + "Date": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Date", + "Value" + ], + "type": "object" + }, + "WhatIfRangeScenario": { + "additionalProperties": false, + "properties": { + "EndDate": { + "format": "date-time", + "type": "string" + }, + "StartDate": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "EndDate", + "StartDate", + "Value" + ], + "type": "object" + }, + "WidgetStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "WordCloudAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WordCloudFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/WordCloudSortConfiguration" + }, + "WordCloudOptions": { + "$ref": "#/definitions/WordCloudOptions" + } + }, + "type": "object" + }, + "WordCloudCloudLayout": { + "enum": [ + "FLUID", + "NORMAL" + ], + "type": "string" + }, + "WordCloudFieldWells": { + "additionalProperties": false, + "properties": { + "WordCloudAggregatedFieldWells": { + "$ref": "#/definitions/WordCloudAggregatedFieldWells" + } + }, + "type": "object" + }, + "WordCloudOptions": { + "additionalProperties": false, + "properties": { + "CloudLayout": { + "$ref": "#/definitions/WordCloudCloudLayout" + }, + "MaximumStringLength": { + "maximum": 100, + "minimum": 1, + "type": "number" + }, + "WordCasing": { + "$ref": "#/definitions/WordCloudWordCasing" + }, + "WordOrientation": { + "$ref": "#/definitions/WordCloudWordOrientation" + }, + "WordPadding": { + "$ref": "#/definitions/WordCloudWordPadding" + }, + "WordScaling": { + "$ref": "#/definitions/WordCloudWordScaling" + } + }, + "type": "object" + }, + "WordCloudSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WordCloudChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WordCloudWordCasing": { + "enum": [ + "LOWER_CASE", + "EXISTING_CASE" + ], + "type": "string" + }, + "WordCloudWordOrientation": { + "enum": [ + "HORIZONTAL", + "HORIZONTAL_AND_VERTICAL" + ], + "type": "string" + }, + "WordCloudWordPadding": { + "enum": [ + "NONE", + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "WordCloudWordScaling": { + "enum": [ + "EMPHASIZE", + "NORMAL" + ], + "type": "string" + } + }, + "description": "Definition of the AWS::QuickSight::Analysis Resource Type.", + "handlers": { + "create": { + "permissions": [ + "quicksight:DescribeAnalysis", + "quicksight:DescribeAnalysisPermissions", + "quicksight:CreateAnalysis", + "quicksight:DescribeTemplate", + "quicksight:DescribeTheme", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "quicksight:DescribeAnalysis", + "quicksight:DeleteAnalysis" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "AwsAccountId": { + "$ref": "resource-schema.json#/properties/AwsAccountId" + } + }, + "required": [ + "AwsAccountId" + ] + }, + "permissions": [ + "quicksight:ListAnalyses" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeAnalysis", + "quicksight:DescribeAnalysisPermissions", + "quicksight:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "quicksight:DescribeAnalysis", + "quicksight:DescribeAnalysisPermissions", + "quicksight:UpdateAnalysis", + "quicksight:UpdateAnalysisPermissions", + "quicksight:DescribeTemplate", + "quicksight:DescribeTheme", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AnalysisId", + "/properties/AwsAccountId" + ], + "properties": { + "AnalysisId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "DataSetArns": { + "items": { + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Definition": { + "$ref": "#/definitions/AnalysisDefinition" + }, + "Errors": { + "items": { + "$ref": "#/definitions/AnalysisError" + }, + "minItems": 1, + "type": "array" + }, + "LastUpdatedTime": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/Parameters" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/Sheet" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/AnalysisSourceEntity" + }, + "Status": { + "$ref": "#/definitions/ResourceStatus" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "ThemeArn": { + "type": "string" + }, + "ValidationStrategy": { + "$ref": "#/definitions/ValidationStrategy" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedTime", + "/properties/DataSetArns", + "/properties/LastUpdatedTime" + ], + "required": [ + "AwsAccountId", + "AnalysisId", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-quicksight", + "typeName": "AWS::QuickSight::Analysis", + "writeOnlyProperties": [ + "/properties/Definition", + "/properties/Parameters", + "/properties/SourceEntity", + "/properties/Status", + "/properties/ValidationStrategy" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-dashboard.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-dashboard.json new file mode 100644 index 0000000000..a5d9985135 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-dashboard.json @@ -0,0 +1,11287 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/DashboardId" + ], + "definitions": { + "AdHocFilteringOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "AggregationFunction": { + "additionalProperties": false, + "properties": { + "AttributeAggregationFunction": { + "$ref": "#/definitions/AttributeAggregationFunction" + }, + "CategoricalAggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "DateAggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "NumericalAggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + } + }, + "type": "object" + }, + "AggregationSortConfiguration": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SortDirection": { + "$ref": "#/definitions/SortDirection" + } + }, + "required": [ + "Column", + "SortDirection" + ], + "type": "object" + }, + "AllSheetsFilterScopeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "AnalysisDefaults": { + "additionalProperties": false, + "properties": { + "DefaultNewSheetConfiguration": { + "$ref": "#/definitions/DefaultNewSheetConfiguration" + } + }, + "required": [ + "DefaultNewSheetConfiguration" + ], + "type": "object" + }, + "AnchorDateConfiguration": { + "additionalProperties": false, + "properties": { + "AnchorOption": { + "$ref": "#/definitions/AnchorOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "AnchorOption": { + "enum": [ + "NOW" + ], + "type": "string" + }, + "ArcAxisConfiguration": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/ArcAxisDisplayRange" + }, + "ReserveRange": { + "default": 0, + "type": "number" + } + }, + "type": "object" + }, + "ArcAxisDisplayRange": { + "additionalProperties": false, + "properties": { + "Max": { + "default": null, + "type": "number" + }, + "Min": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "ArcConfiguration": { + "additionalProperties": false, + "properties": { + "ArcAngle": { + "default": null, + "type": "number" + }, + "ArcThickness": { + "$ref": "#/definitions/ArcThicknessOptions" + } + }, + "type": "object" + }, + "ArcOptions": { + "additionalProperties": false, + "properties": { + "ArcThickness": { + "$ref": "#/definitions/ArcThickness" + } + }, + "type": "object" + }, + "ArcThickness": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE", + "WHOLE" + ], + "type": "string" + }, + "ArcThicknessOptions": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "AssetOptions": { + "additionalProperties": false, + "properties": { + "Timezone": { + "type": "string" + }, + "WeekStart": { + "$ref": "#/definitions/DayOfTheWeek" + } + }, + "type": "object" + }, + "AttributeAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleAttributeAggregation": { + "$ref": "#/definitions/SimpleAttributeAggregationFunction" + }, + "ValueForMultipleValues": { + "type": "string" + } + }, + "type": "object" + }, + "AxisBinding": { + "enum": [ + "PRIMARY_YAXIS", + "SECONDARY_YAXIS" + ], + "type": "string" + }, + "AxisDataOptions": { + "additionalProperties": false, + "properties": { + "DateAxisOptions": { + "$ref": "#/definitions/DateAxisOptions" + }, + "NumericAxisOptions": { + "$ref": "#/definitions/NumericAxisOptions" + } + }, + "type": "object" + }, + "AxisDisplayDataDrivenRange": { + "additionalProperties": false, + "type": "object" + }, + "AxisDisplayMinMaxRange": { + "additionalProperties": false, + "properties": { + "Maximum": { + "default": null, + "type": "number" + }, + "Minimum": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AxisOffset": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "DataOptions": { + "$ref": "#/definitions/AxisDataOptions" + }, + "GridLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ScrollbarOptions": { + "$ref": "#/definitions/ScrollBarOptions" + }, + "TickLabelOptions": { + "$ref": "#/definitions/AxisTickLabelOptions" + } + }, + "type": "object" + }, + "AxisDisplayRange": { + "additionalProperties": false, + "properties": { + "DataDriven": { + "$ref": "#/definitions/AxisDisplayDataDrivenRange" + }, + "MinMax": { + "$ref": "#/definitions/AxisDisplayMinMaxRange" + } + }, + "type": "object" + }, + "AxisLabelOptions": { + "additionalProperties": false, + "properties": { + "ApplyTo": { + "$ref": "#/definitions/AxisLabelReferenceOptions" + }, + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "AxisLabelReferenceOptions": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "AxisLinearScale": { + "additionalProperties": false, + "properties": { + "StepCount": { + "default": null, + "type": "number" + }, + "StepSize": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisLogarithmicScale": { + "additionalProperties": false, + "properties": { + "Base": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisScale": { + "additionalProperties": false, + "properties": { + "Linear": { + "$ref": "#/definitions/AxisLinearScale" + }, + "Logarithmic": { + "$ref": "#/definitions/AxisLogarithmicScale" + } + }, + "type": "object" + }, + "AxisTickLabelOptions": { + "additionalProperties": false, + "properties": { + "LabelOptions": { + "$ref": "#/definitions/LabelOptions" + }, + "RotationAngle": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "BarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Orientation": { + "$ref": "#/definitions/BarChartOrientation" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/BarChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BarChartFieldWells": { + "additionalProperties": false, + "properties": { + "BarChartAggregatedFieldWells": { + "$ref": "#/definitions/BarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "BarChartOrientation": { + "enum": [ + "HORIZONTAL", + "VERTICAL" + ], + "type": "string" + }, + "BarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "BarsArrangement": { + "enum": [ + "CLUSTERED", + "STACKED", + "STACKED_PERCENT" + ], + "type": "string" + }, + "BaseMapStyleType": { + "enum": [ + "LIGHT_GRAY", + "DARK_GRAY", + "STREET", + "IMAGERY" + ], + "type": "string" + }, + "BinCountOptions": { + "additionalProperties": false, + "properties": { + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BinWidthOptions": { + "additionalProperties": false, + "properties": { + "BinCountLimit": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BodySectionConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/BodySectionContent" + }, + "PageBreakConfiguration": { + "$ref": "#/definitions/SectionPageBreakConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Content", + "SectionId" + ], + "type": "object" + }, + "BodySectionContent": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + } + }, + "type": "object" + }, + "BoxPlotAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BoxPlotChartConfiguration": { + "additionalProperties": false, + "properties": { + "BoxPlotOptions": { + "$ref": "#/definitions/BoxPlotOptions" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BoxPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SortConfiguration": { + "$ref": "#/definitions/BoxPlotSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BoxPlotFieldWells": { + "additionalProperties": false, + "properties": { + "BoxPlotAggregatedFieldWells": { + "$ref": "#/definitions/BoxPlotAggregatedFieldWells" + } + }, + "type": "object" + }, + "BoxPlotFillStyle": { + "enum": [ + "SOLID", + "TRANSPARENT" + ], + "type": "string" + }, + "BoxPlotOptions": { + "additionalProperties": false, + "properties": { + "AllDataPointsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "OutlierVisibility": { + "$ref": "#/definitions/Visibility" + }, + "StyleOptions": { + "$ref": "#/definitions/BoxPlotStyleOptions" + } + }, + "type": "object" + }, + "BoxPlotSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + } + }, + "type": "object" + }, + "BoxPlotStyleOptions": { + "additionalProperties": false, + "properties": { + "FillStyle": { + "$ref": "#/definitions/BoxPlotFillStyle" + } + }, + "type": "object" + }, + "BoxPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BoxPlotChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "CalculatedField": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 32000, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 127, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "Expression", + "Name" + ], + "type": "object" + }, + "CalculatedMeasureField": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression", + "FieldId" + ], + "type": "object" + }, + "CascadingControlConfiguration": { + "additionalProperties": false, + "properties": { + "SourceControls": { + "items": { + "$ref": "#/definitions/CascadingControlSource" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CascadingControlSource": { + "additionalProperties": false, + "properties": { + "ColumnToMatch": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceSheetControlId": { + "type": "string" + } + }, + "type": "object" + }, + "CategoricalAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT" + ], + "type": "string" + }, + "CategoricalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoricalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoryDrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "CategoryValues", + "Column" + ], + "type": "object" + }, + "CategoryFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Configuration": { + "$ref": "#/definitions/CategoryFilterConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "Column", + "Configuration", + "FilterId" + ], + "type": "object" + }, + "CategoryFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CustomFilterConfiguration": { + "$ref": "#/definitions/CustomFilterConfiguration" + }, + "CustomFilterListConfiguration": { + "$ref": "#/definitions/CustomFilterListConfiguration" + }, + "FilterListConfiguration": { + "$ref": "#/definitions/FilterListConfiguration" + } + }, + "type": "object" + }, + "CategoryFilterMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL", + "CONTAINS", + "DOES_NOT_CONTAIN", + "STARTS_WITH", + "ENDS_WITH" + ], + "type": "string" + }, + "CategoryFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "ChartAxisLabelOptions": { + "additionalProperties": false, + "properties": { + "AxisLabelOptions": { + "items": { + "$ref": "#/definitions/AxisLabelOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SortIconVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ClusterMarker": { + "additionalProperties": false, + "properties": { + "SimpleClusterMarker": { + "$ref": "#/definitions/SimpleClusterMarker" + } + }, + "type": "object" + }, + "ClusterMarkerConfiguration": { + "additionalProperties": false, + "properties": { + "ClusterMarker": { + "$ref": "#/definitions/ClusterMarker" + } + }, + "type": "object" + }, + "ColorFillType": { + "enum": [ + "DISCRETE", + "GRADIENT" + ], + "type": "string" + }, + "ColorScale": { + "additionalProperties": false, + "properties": { + "ColorFillType": { + "$ref": "#/definitions/ColorFillType" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DataColor" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "NullValueColor": { + "$ref": "#/definitions/DataColor" + } + }, + "required": [ + "ColorFillType", + "Colors" + ], + "type": "object" + }, + "ColorsConfiguration": { + "additionalProperties": false, + "properties": { + "CustomColors": { + "items": { + "$ref": "#/definitions/CustomColor" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ColumnConfiguration": { + "additionalProperties": false, + "properties": { + "ColorsConfiguration": { + "$ref": "#/definitions/ColorsConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + }, + "Role": { + "$ref": "#/definitions/ColumnRole" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ColumnHierarchy": { + "additionalProperties": false, + "properties": { + "DateTimeHierarchy": { + "$ref": "#/definitions/DateTimeHierarchy" + }, + "ExplicitHierarchy": { + "$ref": "#/definitions/ExplicitHierarchy" + }, + "PredefinedHierarchy": { + "$ref": "#/definitions/PredefinedHierarchy" + } + }, + "type": "object" + }, + "ColumnIdentifier": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ColumnName", + "DataSetIdentifier" + ], + "type": "object" + }, + "ColumnRole": { + "enum": [ + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "ColumnSort": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortBy": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "Direction", + "SortBy" + ], + "type": "object" + }, + "ColumnTooltipItem": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ComboChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "BarValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "LineValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ComboChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "LineDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/ComboChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "ComboChartFieldWells": { + "additionalProperties": false, + "properties": { + "ComboChartAggregatedFieldWells": { + "$ref": "#/definitions/ComboChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "ComboChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ComboChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ComparisonConfiguration": { + "additionalProperties": false, + "properties": { + "ComparisonFormat": { + "$ref": "#/definitions/ComparisonFormatConfiguration" + }, + "ComparisonMethod": { + "$ref": "#/definitions/ComparisonMethod" + } + }, + "type": "object" + }, + "ComparisonFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "ComparisonMethod": { + "enum": [ + "DIFFERENCE", + "PERCENT_DIFFERENCE", + "PERCENT" + ], + "type": "string" + }, + "Computation": { + "additionalProperties": false, + "properties": { + "Forecast": { + "$ref": "#/definitions/ForecastComputation" + }, + "GrowthRate": { + "$ref": "#/definitions/GrowthRateComputation" + }, + "MaximumMinimum": { + "$ref": "#/definitions/MaximumMinimumComputation" + }, + "MetricComparison": { + "$ref": "#/definitions/MetricComparisonComputation" + }, + "PeriodOverPeriod": { + "$ref": "#/definitions/PeriodOverPeriodComputation" + }, + "PeriodToDate": { + "$ref": "#/definitions/PeriodToDateComputation" + }, + "TopBottomMovers": { + "$ref": "#/definitions/TopBottomMoversComputation" + }, + "TopBottomRanked": { + "$ref": "#/definitions/TopBottomRankedComputation" + }, + "TotalAggregation": { + "$ref": "#/definitions/TotalAggregationComputation" + }, + "UniqueValues": { + "$ref": "#/definitions/UniqueValuesComputation" + } + }, + "type": "object" + }, + "ConditionalFormattingColor": { + "additionalProperties": false, + "properties": { + "Gradient": { + "$ref": "#/definitions/ConditionalFormattingGradientColor" + }, + "Solid": { + "$ref": "#/definitions/ConditionalFormattingSolidColor" + } + }, + "type": "object" + }, + "ConditionalFormattingCustomIconCondition": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DisplayConfiguration": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayConfiguration" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconOptions": { + "$ref": "#/definitions/ConditionalFormattingCustomIconOptions" + } + }, + "required": [ + "Expression", + "IconOptions" + ], + "type": "object" + }, + "ConditionalFormattingCustomIconOptions": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/Icon" + }, + "UnicodeIcon": { + "pattern": "^[^\\u0000-\\u00FF]$", + "type": "string" + } + }, + "type": "object" + }, + "ConditionalFormattingGradientColor": { + "additionalProperties": false, + "properties": { + "Color": { + "$ref": "#/definitions/GradientColor" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Color", + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIcon": { + "additionalProperties": false, + "properties": { + "CustomCondition": { + "$ref": "#/definitions/ConditionalFormattingCustomIconCondition" + }, + "IconSet": { + "$ref": "#/definitions/ConditionalFormattingIconSet" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayConfiguration": { + "additionalProperties": false, + "properties": { + "IconDisplayOption": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayOption" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayOption": { + "enum": [ + "ICON_ONLY" + ], + "type": "string" + }, + "ConditionalFormattingIconSet": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconSetType": { + "$ref": "#/definitions/ConditionalFormattingIconSetType" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIconSetType": { + "enum": [ + "PLUS_MINUS", + "CHECK_X", + "THREE_COLOR_ARROW", + "THREE_GRAY_ARROW", + "CARET_UP_MINUS_DOWN", + "THREE_SHAPE", + "THREE_CIRCLE", + "FLAGS", + "BARS", + "FOUR_COLOR_ARROW", + "FOUR_GRAY_ARROW" + ], + "type": "string" + }, + "ConditionalFormattingSolidColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ContributionAnalysisDefault": { + "additionalProperties": false, + "properties": { + "ContributorDimensions": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "MeasureFieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ContributorDimensions", + "MeasureFieldId" + ], + "type": "object" + }, + "CrossDatasetTypes": { + "enum": [ + "ALL_DATASETS", + "SINGLE_DATASET" + ], + "type": "string" + }, + "CurrencyDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Symbol": { + "pattern": "[A-Z]{3}", + "type": "string" + } + }, + "type": "object" + }, + "CustomActionFilterOperation": { + "additionalProperties": false, + "properties": { + "SelectedFieldsConfiguration": { + "$ref": "#/definitions/FilterOperationSelectedFieldsConfiguration" + }, + "TargetVisualsConfiguration": { + "$ref": "#/definitions/FilterOperationTargetVisualsConfiguration" + } + }, + "required": [ + "SelectedFieldsConfiguration", + "TargetVisualsConfiguration" + ], + "type": "object" + }, + "CustomActionNavigationOperation": { + "additionalProperties": false, + "properties": { + "LocalNavigationConfiguration": { + "$ref": "#/definitions/LocalNavigationConfiguration" + } + }, + "type": "object" + }, + "CustomActionSetParametersOperation": { + "additionalProperties": false, + "properties": { + "ParameterValueConfigurations": { + "items": { + "$ref": "#/definitions/SetParameterValueConfiguration" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ParameterValueConfigurations" + ], + "type": "object" + }, + "CustomActionURLOperation": { + "additionalProperties": false, + "properties": { + "URLTarget": { + "$ref": "#/definitions/URLTargetConfiguration" + }, + "URLTemplate": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "URLTarget", + "URLTemplate" + ], + "type": "object" + }, + "CustomColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "SpecialValue": { + "$ref": "#/definitions/SpecialValue" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "CustomContentConfiguration": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/CustomContentType" + }, + "ContentUrl": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ImageScaling": { + "$ref": "#/definitions/CustomContentImageScalingConfiguration" + } + }, + "type": "object" + }, + "CustomContentImageScalingConfiguration": { + "enum": [ + "FIT_TO_HEIGHT", + "FIT_TO_WIDTH", + "DO_NOT_SCALE", + "SCALE_TO_VISUAL" + ], + "type": "string" + }, + "CustomContentType": { + "enum": [ + "IMAGE", + "OTHER_EMBEDDED_CONTENT" + ], + "type": "string" + }, + "CustomContentVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/CustomContentConfiguration" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "CustomFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValue": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomFilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomNarrativeOptions": { + "additionalProperties": false, + "properties": { + "Narrative": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Narrative" + ], + "type": "object" + }, + "CustomParameterValues": { + "additionalProperties": false, + "properties": { + "DateTimeValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "DecimalValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "IntegerValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "StringValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CustomValuesConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValues": { + "$ref": "#/definitions/CustomParameterValues" + }, + "IncludeNullValue": { + "type": "boolean" + } + }, + "required": [ + "CustomValues" + ], + "type": "object" + }, + "DashboardBehavior": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "DashboardError": { + "additionalProperties": false, + "properties": { + "Message": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/DashboardErrorType" + }, + "ViolatedEntities": { + "items": { + "$ref": "#/definitions/Entity" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DashboardErrorType": { + "enum": [ + "ACCESS_DENIED", + "SOURCE_NOT_FOUND", + "DATA_SET_NOT_FOUND", + "INTERNAL_FAILURE", + "PARAMETER_VALUE_INCOMPATIBLE", + "PARAMETER_TYPE_INVALID", + "PARAMETER_NOT_FOUND", + "COLUMN_TYPE_MISMATCH", + "COLUMN_GEOGRAPHIC_ROLE_MISMATCH", + "COLUMN_REPLACEMENT_MISSING" + ], + "type": "string" + }, + "DashboardPublishOptions": { + "additionalProperties": false, + "properties": { + "AdHocFilteringOption": { + "$ref": "#/definitions/AdHocFilteringOption" + }, + "DataPointDrillUpDownOption": { + "$ref": "#/definitions/DataPointDrillUpDownOption" + }, + "DataPointMenuLabelOption": { + "$ref": "#/definitions/DataPointMenuLabelOption" + }, + "DataPointTooltipOption": { + "$ref": "#/definitions/DataPointTooltipOption" + }, + "ExportToCSVOption": { + "$ref": "#/definitions/ExportToCSVOption" + }, + "ExportWithHiddenFieldsOption": { + "$ref": "#/definitions/ExportWithHiddenFieldsOption" + }, + "SheetControlsOption": { + "$ref": "#/definitions/SheetControlsOption" + }, + "SheetLayoutElementMaximizationOption": { + "$ref": "#/definitions/SheetLayoutElementMaximizationOption" + }, + "VisualAxisSortOption": { + "$ref": "#/definitions/VisualAxisSortOption" + }, + "VisualMenuOption": { + "$ref": "#/definitions/VisualMenuOption" + }, + "VisualPublishOptions": { + "$ref": "#/definitions/DashboardVisualPublishOptions" + } + }, + "type": "object" + }, + "DashboardSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceTemplate": { + "$ref": "#/definitions/DashboardSourceTemplate" + } + }, + "type": "object" + }, + "DashboardSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/DataSetReference" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "DashboardUIState": { + "enum": [ + "EXPANDED", + "COLLAPSED" + ], + "type": "string" + }, + "DashboardVersion": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "DataSetArns": { + "items": { + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Description": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/DashboardError" + }, + "minItems": 1, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/Sheet" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SourceEntityArn": { + "type": "string" + }, + "Status": { + "$ref": "#/definitions/ResourceStatus" + }, + "ThemeArn": { + "type": "string" + }, + "VersionNumber": { + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "DashboardVersionDefinition": { + "additionalProperties": false, + "properties": { + "AnalysisDefaults": { + "$ref": "#/definitions/AnalysisDefaults" + }, + "CalculatedFields": { + "items": { + "$ref": "#/definitions/CalculatedField" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "ColumnConfigurations": { + "items": { + "$ref": "#/definitions/ColumnConfiguration" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifierDeclarations": { + "items": { + "$ref": "#/definitions/DataSetIdentifierDeclaration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "FilterGroups": { + "items": { + "$ref": "#/definitions/FilterGroup" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "Options": { + "$ref": "#/definitions/AssetOptions" + }, + "ParameterDeclarations": { + "items": { + "$ref": "#/definitions/ParameterDeclaration" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/SheetDefinition" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "DataSetIdentifierDeclarations" + ], + "type": "object" + }, + "DashboardVisualPublishOptions": { + "additionalProperties": false, + "properties": { + "ExportHiddenFieldsOption": { + "$ref": "#/definitions/ExportHiddenFieldsOption" + } + }, + "type": "object" + }, + "DataBarsOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "NegativeColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PositiveColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "DataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "DataFieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "DataLabelContent": { + "enum": [ + "VALUE", + "PERCENT", + "VALUE_AND_PERCENT" + ], + "type": "string" + }, + "DataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DataLabelTypes": { + "items": { + "$ref": "#/definitions/DataLabelType" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelContent": { + "$ref": "#/definitions/DataLabelContent" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Overlap": { + "$ref": "#/definitions/DataLabelOverlap" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataLabelOverlap": { + "enum": [ + "DISABLE_OVERLAP", + "ENABLE_OVERLAP" + ], + "type": "string" + }, + "DataLabelPosition": { + "enum": [ + "INSIDE", + "OUTSIDE", + "LEFT", + "TOP", + "BOTTOM", + "RIGHT" + ], + "type": "string" + }, + "DataLabelType": { + "additionalProperties": false, + "properties": { + "DataPathLabelType": { + "$ref": "#/definitions/DataPathLabelType" + }, + "FieldLabelType": { + "$ref": "#/definitions/FieldLabelType" + }, + "MaximumLabelType": { + "$ref": "#/definitions/MaximumLabelType" + }, + "MinimumLabelType": { + "$ref": "#/definitions/MinimumLabelType" + }, + "RangeEndsLabelType": { + "$ref": "#/definitions/RangeEndsLabelType" + } + }, + "type": "object" + }, + "DataPathColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Element": { + "$ref": "#/definitions/DataPathValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Color", + "Element" + ], + "type": "object" + }, + "DataPathLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataPathSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortPaths": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Direction", + "SortPaths" + ], + "type": "object" + }, + "DataPathType": { + "additionalProperties": false, + "properties": { + "PivotTableDataPathType": { + "$ref": "#/definitions/PivotTableDataPathType" + } + }, + "type": "object" + }, + "DataPathValue": { + "additionalProperties": false, + "properties": { + "DataPathType": { + "$ref": "#/definitions/DataPathType" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "DataPointDrillUpDownOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "DataPointMenuLabelOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "DataPointTooltipOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "DataSetIdentifierDeclaration": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "Identifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetArn", + "Identifier" + ], + "type": "object" + }, + "DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "DataSetPlaceholder": { + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "DateAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX" + ], + "type": "string" + }, + "DateAxisOptions": { + "additionalProperties": false, + "properties": { + "MissingDateVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DateDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DateGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateTimeDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DateTimeFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "DateTimeHierarchy": { + "additionalProperties": false, + "properties": { + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "HierarchyId" + ], + "type": "object" + }, + "DateTimeParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "DateTimeParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DateTimeDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DateTimeValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "DateTimePickerControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DateTimeValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "format": "date-time", + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DayOfTheWeek": { + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ], + "type": "string" + }, + "DecimalDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DecimalParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Values": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "DecimalParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DecimalDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DecimalValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "DecimalPlacesConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlaces": { + "maximum": 20, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "DecimalPlaces" + ], + "type": "object" + }, + "DecimalValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DefaultFreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultGridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultInteractiveLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeForm": { + "$ref": "#/definitions/DefaultFreeFormLayoutConfiguration" + }, + "Grid": { + "$ref": "#/definitions/DefaultGridLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultNewSheetConfiguration": { + "additionalProperties": false, + "properties": { + "InteractiveLayoutConfiguration": { + "$ref": "#/definitions/DefaultInteractiveLayoutConfiguration" + }, + "PaginatedLayoutConfiguration": { + "$ref": "#/definitions/DefaultPaginatedLayoutConfiguration" + }, + "SheetContentType": { + "$ref": "#/definitions/SheetContentType" + } + }, + "type": "object" + }, + "DefaultPaginatedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "SectionBased": { + "$ref": "#/definitions/DefaultSectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultSectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DestinationParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValuesConfiguration": { + "$ref": "#/definitions/CustomValuesConfiguration" + }, + "SelectAllValueOptions": { + "$ref": "#/definitions/SelectAllValueOptions" + }, + "SourceColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceField": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SourceParameterName": { + "type": "string" + } + }, + "type": "object" + }, + "DimensionField": { + "additionalProperties": false, + "properties": { + "CategoricalDimensionField": { + "$ref": "#/definitions/CategoricalDimensionField" + }, + "DateDimensionField": { + "$ref": "#/definitions/DateDimensionField" + }, + "NumericalDimensionField": { + "$ref": "#/definitions/NumericalDimensionField" + } + }, + "type": "object" + }, + "DonutCenterOptions": { + "additionalProperties": false, + "properties": { + "LabelVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DonutOptions": { + "additionalProperties": false, + "properties": { + "ArcOptions": { + "$ref": "#/definitions/ArcOptions" + }, + "DonutCenterOptions": { + "$ref": "#/definitions/DonutCenterOptions" + } + }, + "type": "object" + }, + "DrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryDrillDownFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityDrillDownFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeDrillDownFilter" + } + }, + "type": "object" + }, + "DropDownControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DynamicDefaultValue": { + "additionalProperties": false, + "properties": { + "DefaultValueColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "GroupNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "UserNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "DefaultValueColumn" + ], + "type": "object" + }, + "EmptyVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "Entity": { + "additionalProperties": false, + "properties": { + "Path": { + "pattern": ".*\\S.*", + "type": "string" + } + }, + "type": "object" + }, + "ExcludePeriodConfiguration": { + "additionalProperties": false, + "properties": { + "Amount": { + "default": null, + "type": "number" + }, + "Granularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "Amount", + "Granularity" + ], + "type": "object" + }, + "ExplicitHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 2, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "ExportHiddenFieldsOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "ExportToCSVOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "ExportWithHiddenFieldsOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "FieldBasedTooltip": { + "additionalProperties": false, + "properties": { + "AggregationVisibility": { + "$ref": "#/definitions/Visibility" + }, + "TooltipFields": { + "items": { + "$ref": "#/definitions/TooltipItem" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "TooltipTitleType": { + "$ref": "#/definitions/TooltipTitleType" + } + }, + "type": "object" + }, + "FieldLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "FieldSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Direction", + "FieldId" + ], + "type": "object" + }, + "FieldSortOptions": { + "additionalProperties": false, + "properties": { + "ColumnSort": { + "$ref": "#/definitions/ColumnSort" + }, + "FieldSort": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "FieldTooltipItem": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/FilledMapConditionalFormattingOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "ConditionalFormattingOptions" + ], + "type": "object" + }, + "FilledMapConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Shape": { + "$ref": "#/definitions/FilledMapShapeConditionalFormatting" + } + }, + "required": [ + "Shape" + ], + "type": "object" + }, + "FilledMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/FilledMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/FilledMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "FilledMapFieldWells": { + "additionalProperties": false, + "properties": { + "FilledMapAggregatedFieldWells": { + "$ref": "#/definitions/FilledMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "FilledMapShapeConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Format": { + "$ref": "#/definitions/ShapeConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FilledMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/FilledMapConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Filter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityFilter" + }, + "NumericRangeFilter": { + "$ref": "#/definitions/NumericRangeFilter" + }, + "RelativeDatesFilter": { + "$ref": "#/definitions/RelativeDatesFilter" + }, + "TimeEqualityFilter": { + "$ref": "#/definitions/TimeEqualityFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeFilter" + }, + "TopBottomFilter": { + "$ref": "#/definitions/TopBottomFilter" + } + }, + "type": "object" + }, + "FilterControl": { + "additionalProperties": false, + "properties": { + "DateTimePicker": { + "$ref": "#/definitions/FilterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/FilterDropDownControl" + }, + "List": { + "$ref": "#/definitions/FilterListControl" + }, + "RelativeDateTime": { + "$ref": "#/definitions/FilterRelativeDateTimeControl" + }, + "Slider": { + "$ref": "#/definitions/FilterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/FilterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/FilterTextFieldControl" + } + }, + "type": "object" + }, + "FilterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlDateTimePickerType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterGroup": { + "additionalProperties": false, + "properties": { + "CrossDataset": { + "$ref": "#/definitions/CrossDatasetTypes" + }, + "FilterGroupId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/Filter" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "ScopeConfiguration": { + "$ref": "#/definitions/FilterScopeConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "CrossDataset", + "FilterGroupId", + "Filters", + "ScopeConfiguration" + ], + "type": "object" + }, + "FilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator" + ], + "type": "object" + }, + "FilterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterNullOption": { + "enum": [ + "ALL_VALUES", + "NULLS_ONLY", + "NON_NULLS_ONLY" + ], + "type": "string" + }, + "FilterOperationSelectedFieldsConfiguration": { + "additionalProperties": false, + "properties": { + "SelectedColumns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "$ref": "#/definitions/SelectedFieldOptions" + }, + "SelectedFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "FilterOperationTargetVisualsConfiguration": { + "additionalProperties": false, + "properties": { + "SameSheetTargetVisualConfiguration": { + "$ref": "#/definitions/SameSheetTargetVisualConfiguration" + } + }, + "type": "object" + }, + "FilterRelativeDateTimeControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/RelativeDateTimeControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "AllSheets": { + "$ref": "#/definitions/AllSheetsFilterScopeConfiguration" + }, + "SelectedSheets": { + "$ref": "#/definitions/SelectedSheetsFilterScopeConfiguration" + } + }, + "type": "object" + }, + "FilterSelectableValues": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlSliderType" + } + }, + "required": [ + "FilterControlId", + "MaximumValue", + "MinimumValue", + "SourceFilterId", + "StepSize", + "Title" + ], + "type": "object" + }, + "FilterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterVisualScope": { + "enum": [ + "ALL_VISUALS", + "SELECTED_VISUALS" + ], + "type": "string" + }, + "FontConfiguration": { + "additionalProperties": false, + "properties": { + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontDecoration": { + "$ref": "#/definitions/FontDecoration" + }, + "FontSize": { + "$ref": "#/definitions/FontSize" + }, + "FontStyle": { + "$ref": "#/definitions/FontStyle" + }, + "FontWeight": { + "$ref": "#/definitions/FontWeight" + } + }, + "type": "object" + }, + "FontDecoration": { + "enum": [ + "UNDERLINE", + "NONE" + ], + "type": "string" + }, + "FontSize": { + "additionalProperties": false, + "properties": { + "Relative": { + "$ref": "#/definitions/RelativeFontSize" + } + }, + "type": "object" + }, + "FontStyle": { + "enum": [ + "NORMAL", + "ITALIC" + ], + "type": "string" + }, + "FontWeight": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/FontWeightName" + } + }, + "type": "object" + }, + "FontWeightName": { + "enum": [ + "NORMAL", + "BOLD" + ], + "type": "string" + }, + "ForecastComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "CustomSeasonalityValue": { + "default": null, + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "LowerBoundary": { + "default": null, + "type": "number" + }, + "Name": { + "type": "string" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "$ref": "#/definitions/ForecastComputationSeasonality" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "UpperBoundary": { + "default": null, + "type": "number" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ForecastComputationSeasonality": { + "enum": [ + "AUTOMATIC", + "CUSTOM" + ], + "type": "string" + }, + "ForecastConfiguration": { + "additionalProperties": false, + "properties": { + "ForecastProperties": { + "$ref": "#/definitions/TimeBasedForecastProperties" + }, + "Scenario": { + "$ref": "#/definitions/ForecastScenario" + } + }, + "type": "object" + }, + "ForecastScenario": { + "additionalProperties": false, + "properties": { + "WhatIfPointScenario": { + "$ref": "#/definitions/WhatIfPointScenario" + }, + "WhatIfRangeScenario": { + "$ref": "#/definitions/WhatIfRangeScenario" + } + }, + "type": "object" + }, + "FormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "NumberFormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "StringFormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "type": "object" + }, + "FreeFormLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "FreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FreeFormLayoutElement": { + "additionalProperties": false, + "properties": { + "BackgroundStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBackgroundStyle" + }, + "BorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "LoadingAnimation": { + "$ref": "#/definitions/LoadingAnimation" + }, + "RenderingRules": { + "items": { + "$ref": "#/definitions/SheetElementRenderingRule" + }, + "maxItems": 10000, + "minItems": 0, + "type": "array" + }, + "SelectedBorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "XAxisLocation": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "YAxisLocation": { + "description": "String based length that is composed of value and unit in px with Integer.MAX_VALUE as maximum value", + "type": "string" + } + }, + "required": [ + "ElementId", + "ElementType", + "Height", + "Width", + "XAxisLocation", + "YAxisLocation" + ], + "type": "object" + }, + "FreeFormLayoutElementBackgroundStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutElementBorderStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "required": [ + "OptimizedViewPortWidth" + ], + "type": "object" + }, + "FreeFormSectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FunnelChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabelOptions": { + "$ref": "#/definitions/FunnelChartDataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/FunnelChartFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/FunnelChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "FunnelChartDataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureDataLabelStyle": { + "$ref": "#/definitions/FunnelChartMeasureDataLabelStyle" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FunnelChartFieldWells": { + "additionalProperties": false, + "properties": { + "FunnelChartAggregatedFieldWells": { + "$ref": "#/definitions/FunnelChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "FunnelChartMeasureDataLabelStyle": { + "enum": [ + "VALUE_ONLY", + "PERCENTAGE_BY_FIRST_STAGE", + "PERCENTAGE_BY_PREVIOUS_STAGE", + "VALUE_AND_PERCENTAGE_BY_FIRST_STAGE", + "VALUE_AND_PERCENTAGE_BY_PREVIOUS_STAGE" + ], + "type": "string" + }, + "FunnelChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FunnelChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GaugeChartArcConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/GaugeChartConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/GaugeChartArcConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/GaugeChartPrimaryValueConditionalFormatting" + } + }, + "type": "object" + }, + "GaugeChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/GaugeChartFieldWells" + }, + "GaugeChartOptions": { + "$ref": "#/definitions/GaugeChartOptions" + }, + "TooltipOptions": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "GaugeChartFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartOptions": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/ArcConfiguration" + }, + "ArcAxis": { + "$ref": "#/definitions/ArcAxisConfiguration" + }, + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "GaugeChartPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GaugeChartConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/GaugeChartConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialCoordinateBounds": { + "additionalProperties": false, + "properties": { + "East": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + }, + "North": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "South": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "West": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + } + }, + "required": [ + "East", + "North", + "South", + "West" + ], + "type": "object" + }, + "GeospatialHeatmapColorScale": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/GeospatialHeatmapDataColor" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialHeatmapConfiguration": { + "additionalProperties": false, + "properties": { + "HeatmapColor": { + "$ref": "#/definitions/GeospatialHeatmapColorScale" + } + }, + "type": "object" + }, + "GeospatialHeatmapDataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "GeospatialMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/GeospatialMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "PointStyleOptions": { + "$ref": "#/definitions/GeospatialPointStyleOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "GeospatialMapFieldWells": { + "additionalProperties": false, + "properties": { + "GeospatialMapAggregatedFieldWells": { + "$ref": "#/definitions/GeospatialMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "GeospatialMapStyleOptions": { + "additionalProperties": false, + "properties": { + "BaseMapStyle": { + "$ref": "#/definitions/BaseMapStyleType" + } + }, + "type": "object" + }, + "GeospatialMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GeospatialMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialPointStyleOptions": { + "additionalProperties": false, + "properties": { + "ClusterMarkerConfiguration": { + "$ref": "#/definitions/ClusterMarkerConfiguration" + }, + "HeatmapConfiguration": { + "$ref": "#/definitions/GeospatialHeatmapConfiguration" + }, + "SelectedPointStyle": { + "$ref": "#/definitions/GeospatialSelectedPointStyle" + } + }, + "type": "object" + }, + "GeospatialSelectedPointStyle": { + "enum": [ + "POINT", + "CLUSTER", + "HEATMAP" + ], + "type": "string" + }, + "GeospatialWindowOptions": { + "additionalProperties": false, + "properties": { + "Bounds": { + "$ref": "#/definitions/GeospatialCoordinateBounds" + }, + "MapZoomMode": { + "$ref": "#/definitions/MapZoomMode" + } + }, + "type": "object" + }, + "GlobalTableBorderOptions": { + "additionalProperties": false, + "properties": { + "SideSpecificBorder": { + "$ref": "#/definitions/TableSideBorderOptions" + }, + "UniformBorder": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "GradientColor": { + "additionalProperties": false, + "properties": { + "Stops": { + "items": { + "$ref": "#/definitions/GradientStop" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GradientStop": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + }, + "GradientOffset": { + "default": 0, + "type": "number" + } + }, + "required": [ + "GradientOffset" + ], + "type": "object" + }, + "GridLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "GridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/GridLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "GridLayoutElement": { + "additionalProperties": false, + "properties": { + "ColumnIndex": { + "maximum": 35, + "minimum": 0, + "type": "number" + }, + "ColumnSpan": { + "maximum": 36, + "minimum": 1, + "type": "number" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "RowIndex": { + "maximum": 9009, + "minimum": 0, + "type": "number" + }, + "RowSpan": { + "maximum": 21, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "ColumnSpan", + "ElementId", + "ElementType", + "RowSpan" + ], + "type": "object" + }, + "GridLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "ResizeOption": { + "$ref": "#/definitions/ResizeOption" + } + }, + "required": [ + "ResizeOption" + ], + "type": "object" + }, + "GrowthRateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodSize": { + "default": 0, + "maximum": 52, + "minimum": 2, + "type": "number" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "HeaderFooterSectionConfiguration": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Layout", + "SectionId" + ], + "type": "object" + }, + "HeatMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "ColumnLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HeatMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "RowLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/HeatMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "HeatMapFieldWells": { + "additionalProperties": false, + "properties": { + "HeatMapAggregatedFieldWells": { + "$ref": "#/definitions/HeatMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "HeatMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "HeatMapColumnItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapColumnSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "HeatMapRowItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapRowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HeatMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HistogramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HistogramBinOptions": { + "additionalProperties": false, + "properties": { + "BinCount": { + "$ref": "#/definitions/BinCountOptions" + }, + "BinWidth": { + "$ref": "#/definitions/BinWidthOptions" + }, + "SelectedBinType": { + "$ref": "#/definitions/HistogramBinType" + }, + "StartValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "HistogramBinType": { + "enum": [ + "BIN_COUNT", + "BIN_WIDTH" + ], + "type": "string" + }, + "HistogramConfiguration": { + "additionalProperties": false, + "properties": { + "BinOptions": { + "$ref": "#/definitions/HistogramBinOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HistogramFieldWells" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + } + }, + "type": "object" + }, + "HistogramFieldWells": { + "additionalProperties": false, + "properties": { + "HistogramAggregatedFieldWells": { + "$ref": "#/definitions/HistogramAggregatedFieldWells" + } + }, + "type": "object" + }, + "HistogramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HistogramConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HorizontalTextAlignment": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT", + "AUTO" + ], + "type": "string" + }, + "Icon": { + "enum": [ + "CARET_UP", + "CARET_DOWN", + "PLUS", + "MINUS", + "ARROW_UP", + "ARROW_DOWN", + "ARROW_LEFT", + "ARROW_UP_LEFT", + "ARROW_DOWN_LEFT", + "ARROW_RIGHT", + "ARROW_UP_RIGHT", + "ARROW_DOWN_RIGHT", + "FACE_UP", + "FACE_DOWN", + "FACE_FLAT", + "ONE_BAR", + "TWO_BAR", + "THREE_BAR", + "CIRCLE", + "TRIANGLE", + "SQUARE", + "FLAG", + "THUMBS_UP", + "THUMBS_DOWN", + "CHECKMARK", + "X" + ], + "type": "string" + }, + "InsightConfiguration": { + "additionalProperties": false, + "properties": { + "Computations": { + "items": { + "$ref": "#/definitions/Computation" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "CustomNarrative": { + "$ref": "#/definitions/CustomNarrativeOptions" + } + }, + "type": "object" + }, + "InsightVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "InsightConfiguration": { + "$ref": "#/definitions/InsightConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "IntegerDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "IntegerParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Values": { + "items": { + "default": 0, + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "IntegerParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/IntegerDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/IntegerValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "IntegerValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "ItemsLimitConfiguration": { + "additionalProperties": false, + "properties": { + "ItemsLimit": { + "default": null, + "type": "number" + }, + "OtherCategories": { + "$ref": "#/definitions/OtherCategories" + } + }, + "type": "object" + }, + "KPIActualValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIComparisonValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/KPIConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "ActualValue": { + "$ref": "#/definitions/KPIActualValueConditionalFormatting" + }, + "ComparisonValue": { + "$ref": "#/definitions/KPIComparisonValueConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/KPIPrimaryValueConditionalFormatting" + }, + "ProgressBar": { + "$ref": "#/definitions/KPIProgressBarConditionalFormatting" + } + }, + "type": "object" + }, + "KPIConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/KPIFieldWells" + }, + "KPIOptions": { + "$ref": "#/definitions/KPIOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/KPISortConfiguration" + } + }, + "type": "object" + }, + "KPIFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TrendGroups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIOptions": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "ProgressBar": { + "$ref": "#/definitions/ProgressBarOptions" + }, + "SecondaryValue": { + "$ref": "#/definitions/SecondaryValueOptions" + }, + "SecondaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Sparkline": { + "$ref": "#/definitions/KPISparklineOptions" + }, + "TrendArrows": { + "$ref": "#/definitions/TrendArrowOptions" + }, + "VisualLayoutOptions": { + "$ref": "#/definitions/KPIVisualLayoutOptions" + } + }, + "type": "object" + }, + "KPIPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIProgressBarConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPISortConfiguration": { + "additionalProperties": false, + "properties": { + "TrendGroupSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPISparklineOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Type": { + "$ref": "#/definitions/KPISparklineType" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPISparklineType": { + "enum": [ + "LINE", + "AREA" + ], + "type": "string" + }, + "KPIVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/KPIConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/KPIConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "KPIVisualLayoutOptions": { + "additionalProperties": false, + "properties": { + "StandardLayout": { + "$ref": "#/definitions/KPIVisualStandardLayout" + } + }, + "type": "object" + }, + "KPIVisualStandardLayout": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/KPIVisualStandardLayoutType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPIVisualStandardLayoutType": { + "enum": [ + "CLASSIC", + "VERTICAL" + ], + "type": "string" + }, + "LabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "Layout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/LayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "LayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormLayoutConfiguration" + }, + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + }, + "SectionBasedLayout": { + "$ref": "#/definitions/SectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "LayoutElementType": { + "enum": [ + "VISUAL", + "FILTER_CONTROL", + "PARAMETER_CONTROL", + "TEXT_BOX" + ], + "type": "string" + }, + "LegendOptions": { + "additionalProperties": false, + "properties": { + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "Position": { + "$ref": "#/definitions/LegendPosition" + }, + "Title": { + "$ref": "#/definitions/LabelOptions" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "type": "object" + }, + "LegendPosition": { + "enum": [ + "AUTO", + "RIGHT", + "BOTTOM", + "TOP" + ], + "type": "string" + }, + "LineChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartConfiguration": { + "additionalProperties": false, + "properties": { + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DefaultSeriesSettings": { + "$ref": "#/definitions/LineChartDefaultSeriesSettings" + }, + "FieldWells": { + "$ref": "#/definitions/LineChartFieldWells" + }, + "ForecastConfigurations": { + "items": { + "$ref": "#/definitions/ForecastConfiguration" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Series": { + "items": { + "$ref": "#/definitions/SeriesItem" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/LineChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "Type": { + "$ref": "#/definitions/LineChartType" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "LineChartDefaultSeriesSettings": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartFieldWells": { + "additionalProperties": false, + "properties": { + "LineChartAggregatedFieldWells": { + "$ref": "#/definitions/LineChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "LineChartLineStyle": { + "enum": [ + "SOLID", + "DOTTED", + "DASHED" + ], + "type": "string" + }, + "LineChartLineStyleSettings": { + "additionalProperties": false, + "properties": { + "LineInterpolation": { + "$ref": "#/definitions/LineInterpolation" + }, + "LineStyle": { + "$ref": "#/definitions/LineChartLineStyle" + }, + "LineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LineWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "type": "object" + }, + "LineChartMarkerShape": { + "enum": [ + "CIRCLE", + "TRIANGLE", + "SQUARE", + "DIAMOND", + "ROUNDED_SQUARE" + ], + "type": "string" + }, + "LineChartMarkerStyleSettings": { + "additionalProperties": false, + "properties": { + "MarkerColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "MarkerShape": { + "$ref": "#/definitions/LineChartMarkerShape" + }, + "MarkerSize": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "MarkerVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LineChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartType": { + "enum": [ + "LINE", + "AREA", + "STACKED_AREA" + ], + "type": "string" + }, + "LineChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/LineChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "LineInterpolation": { + "enum": [ + "LINEAR", + "SMOOTH", + "STEPPED" + ], + "type": "string" + }, + "LineSeriesAxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "MissingDataConfigurations": { + "items": { + "$ref": "#/definitions/MissingDataConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LinkSharingConfiguration": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "ListControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SearchOptions": { + "$ref": "#/definitions/ListControlSearchOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "ListControlSearchOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ListControlSelectAllOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LoadingAnimation": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LocalNavigationConfiguration": { + "additionalProperties": false, + "properties": { + "TargetSheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "TargetSheetId" + ], + "type": "object" + }, + "LongFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "MapZoomMode": { + "enum": [ + "AUTO", + "MANUAL" + ], + "type": "string" + }, + "MappedDataSetParameter": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DataSetParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "DataSetParameterName" + ], + "type": "object" + }, + "MaximumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MaximumMinimumComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/MaximumMinimumComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "MaximumMinimumComputationType": { + "enum": [ + "MAXIMUM", + "MINIMUM" + ], + "type": "string" + }, + "MeasureField": { + "additionalProperties": false, + "properties": { + "CalculatedMeasureField": { + "$ref": "#/definitions/CalculatedMeasureField" + }, + "CategoricalMeasureField": { + "$ref": "#/definitions/CategoricalMeasureField" + }, + "DateMeasureField": { + "$ref": "#/definitions/DateMeasureField" + }, + "NumericalMeasureField": { + "$ref": "#/definitions/NumericalMeasureField" + } + }, + "type": "object" + }, + "MetricComparisonComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "FromValue": { + "$ref": "#/definitions/MeasureField" + }, + "Name": { + "type": "string" + }, + "TargetValue": { + "$ref": "#/definitions/MeasureField" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "MinimumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MissingDataConfiguration": { + "additionalProperties": false, + "properties": { + "TreatmentOption": { + "$ref": "#/definitions/MissingDataTreatmentOption" + } + }, + "type": "object" + }, + "MissingDataTreatmentOption": { + "enum": [ + "INTERPOLATE", + "SHOW_AS_ZERO", + "SHOW_AS_BLANK" + ], + "type": "string" + }, + "NegativeValueConfiguration": { + "additionalProperties": false, + "properties": { + "DisplayMode": { + "$ref": "#/definitions/NegativeValueDisplayMode" + } + }, + "required": [ + "DisplayMode" + ], + "type": "object" + }, + "NegativeValueDisplayMode": { + "enum": [ + "POSITIVE", + "NEGATIVE" + ], + "type": "string" + }, + "NullValueFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullString": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "NullString" + ], + "type": "object" + }, + "NumberDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "NumberFormatConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "NumberScale": { + "enum": [ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ], + "type": "string" + }, + "NumericAxisOptions": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/AxisDisplayRange" + }, + "Scale": { + "$ref": "#/definitions/AxisScale" + } + }, + "type": "object" + }, + "NumericEqualityDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Column", + "Value" + ], + "type": "object" + }, + "NumericEqualityFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/NumericEqualityMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + }, + "Value": { + "default": null, + "type": "number" + } + }, + "required": [ + "Column", + "FilterId", + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "NumericEqualityMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL" + ], + "type": "string" + }, + "NumericFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "NumericFormatConfiguration": { + "additionalProperties": false, + "properties": { + "CurrencyDisplayFormatConfiguration": { + "$ref": "#/definitions/CurrencyDisplayFormatConfiguration" + }, + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "NumericRangeFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "RangeMinimum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "NumericRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StaticValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "NumericSeparatorConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalSeparator": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "ThousandsSeparator": { + "$ref": "#/definitions/ThousandSeparatorOptions" + } + }, + "type": "object" + }, + "NumericSeparatorSymbol": { + "enum": [ + "COMMA", + "DOT", + "SPACE" + ], + "type": "string" + }, + "NumericalAggregationFunction": { + "additionalProperties": false, + "properties": { + "PercentileAggregation": { + "$ref": "#/definitions/PercentileAggregation" + }, + "SimpleNumericalAggregation": { + "$ref": "#/definitions/SimpleNumericalAggregationFunction" + } + }, + "type": "object" + }, + "NumericalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "NumericalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "OtherCategories": { + "enum": [ + "INCLUDE", + "EXCLUDE" + ], + "type": "string" + }, + "PaginationConfiguration": { + "additionalProperties": false, + "properties": { + "PageNumber": { + "minimum": 0, + "type": "number" + }, + "PageSize": { + "default": null, + "type": "number" + } + }, + "required": [ + "PageNumber", + "PageSize" + ], + "type": "object" + }, + "PanelBorderStyle": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "PanelConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BackgroundVisibility": { + "$ref": "#/definitions/Visibility" + }, + "BorderColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BorderStyle": { + "$ref": "#/definitions/PanelBorderStyle" + }, + "BorderThickness": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "BorderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "GutterSpacing": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "GutterVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Title": { + "$ref": "#/definitions/PanelTitleOptions" + } + }, + "type": "object" + }, + "PanelTitleOptions": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PaperOrientation": { + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "type": "string" + }, + "PaperSize": { + "enum": [ + "US_LETTER", + "US_LEGAL", + "US_TABLOID_LEDGER", + "A0", + "A1", + "A2", + "A3", + "A4", + "A5", + "JIS_B4", + "JIS_B5" + ], + "type": "string" + }, + "ParameterControl": { + "additionalProperties": false, + "properties": { + "DateTimePicker": { + "$ref": "#/definitions/ParameterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/ParameterDropDownControl" + }, + "List": { + "$ref": "#/definitions/ParameterListControl" + }, + "Slider": { + "$ref": "#/definitions/ParameterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/ParameterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/ParameterTextFieldControl" + } + }, + "type": "object" + }, + "ParameterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DateTimeParameterDeclaration": { + "$ref": "#/definitions/DateTimeParameterDeclaration" + }, + "DecimalParameterDeclaration": { + "$ref": "#/definitions/DecimalParameterDeclaration" + }, + "IntegerParameterDeclaration": { + "$ref": "#/definitions/IntegerParameterDeclaration" + }, + "StringParameterDeclaration": { + "$ref": "#/definitions/StringParameterDeclaration" + } + }, + "type": "object" + }, + "ParameterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterSelectableValues": { + "additionalProperties": false, + "properties": { + "LinkToDataSetColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ParameterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MaximumValue", + "MinimumValue", + "ParameterControlId", + "SourceParameterName", + "StepSize", + "Title" + ], + "type": "object" + }, + "ParameterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterValueType": { + "enum": [ + "MULTI_VALUED", + "SINGLE_VALUED" + ], + "type": "string" + }, + "Parameters": { + "additionalProperties": false, + "properties": { + "DateTimeParameters": { + "items": { + "$ref": "#/definitions/DateTimeParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "DecimalParameters": { + "items": { + "$ref": "#/definitions/DecimalParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "IntegerParameters": { + "items": { + "$ref": "#/definitions/IntegerParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "StringParameters": { + "items": { + "$ref": "#/definitions/StringParameter" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PercentVisibleRange": { + "additionalProperties": false, + "properties": { + "From": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "To": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PercentageDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PercentileAggregation": { + "additionalProperties": false, + "properties": { + "PercentileValue": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PeriodOverPeriodComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PeriodToDateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodTimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PieChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DonutOptions": { + "$ref": "#/definitions/DonutOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PieChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PieChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "PieChartFieldWells": { + "additionalProperties": false, + "properties": { + "PieChartAggregatedFieldWells": { + "$ref": "#/definitions/PieChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "PieChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PieChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotFieldSortOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SortBy": { + "$ref": "#/definitions/PivotTableSortBy" + } + }, + "required": [ + "FieldId", + "SortBy" + ], + "type": "object" + }, + "PivotTableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "Scopes": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/PivotTableCellConditionalFormatting" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScope": { + "additionalProperties": false, + "properties": { + "Role": { + "$ref": "#/definitions/PivotTableConditionalFormattingScopeRole" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScopeRole": { + "enum": [ + "FIELD", + "FIELD_TOTAL", + "GRAND_TOTAL" + ], + "type": "string" + }, + "PivotTableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/PivotTableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PivotTableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/PivotTablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PivotTableSortConfiguration" + }, + "TableOptions": { + "$ref": "#/definitions/PivotTableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/PivotTableTotalOptions" + } + }, + "type": "object" + }, + "PivotTableDataPathOption": { + "additionalProperties": false, + "properties": { + "DataPathList": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "required": [ + "DataPathList" + ], + "type": "object" + }, + "PivotTableDataPathType": { + "enum": [ + "HIERARCHY_ROWS_LAYOUT_COLUMN", + "MULTIPLE_ROW_METRICS_COLUMN", + "EMPTY_COLUMN_HEADER", + "COUNT_METRIC_COLUMN" + ], + "type": "string" + }, + "PivotTableFieldCollapseState": { + "enum": [ + "COLLAPSED", + "EXPANDED" + ], + "type": "string" + }, + "PivotTableFieldCollapseStateOption": { + "additionalProperties": false, + "properties": { + "State": { + "$ref": "#/definitions/PivotTableFieldCollapseState" + }, + "Target": { + "$ref": "#/definitions/PivotTableFieldCollapseStateTarget" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "PivotTableFieldCollapseStateTarget": { + "additionalProperties": false, + "properties": { + "FieldDataPathValues": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "FieldId": { + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableFieldOptions": { + "additionalProperties": false, + "properties": { + "CollapseStateOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldCollapseStateOption" + }, + "type": "array" + }, + "DataPathOptions": { + "items": { + "$ref": "#/definitions/PivotTableDataPathOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableFieldSubtotalOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldWells": { + "additionalProperties": false, + "properties": { + "PivotTableAggregatedFieldWells": { + "$ref": "#/definitions/PivotTableAggregatedFieldWells" + } + }, + "type": "object" + }, + "PivotTableMetricPlacement": { + "enum": [ + "ROW", + "COLUMN" + ], + "type": "string" + }, + "PivotTableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "CollapsedRowDimensionsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ColumnHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "ColumnNamesVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DefaultCellWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "MetricPlacement": { + "$ref": "#/definitions/PivotTableMetricPlacement" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + }, + "RowFieldNamesStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowsLabelOptions": { + "$ref": "#/definitions/PivotTableRowsLabelOptions" + }, + "RowsLayout": { + "$ref": "#/definitions/PivotTableRowsLayout" + }, + "SingleMetricVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ToggleButtonsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLayout": { + "enum": [ + "TABULAR", + "HIERARCHY" + ], + "type": "string" + }, + "PivotTableSortBy": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnSort" + }, + "DataPath": { + "$ref": "#/definitions/DataPathSort" + }, + "Field": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "PivotTableSortConfiguration": { + "additionalProperties": false, + "properties": { + "FieldSortOptions": { + "items": { + "$ref": "#/definitions/PivotFieldSortOptions" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableSubtotalLevel": { + "enum": [ + "ALL", + "CUSTOM", + "LAST" + ], + "type": "string" + }, + "PivotTableTotalOptions": { + "additionalProperties": false, + "properties": { + "ColumnSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "ColumnTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + }, + "RowSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "RowTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + } + }, + "type": "object" + }, + "PivotTableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PivotTableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/PivotTableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotTotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "PredefinedHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "PrimaryValueDisplayType": { + "enum": [ + "HIDDEN", + "COMPARISON", + "ACTUAL" + ], + "type": "string" + }, + "ProgressBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Color": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartAreaStyleSettings": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAxesRangeScale": { + "enum": [ + "AUTO", + "INDEPENDENT", + "SHARED" + ], + "type": "string" + }, + "RadarChartConfiguration": { + "additionalProperties": false, + "properties": { + "AlternateBandColorsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AlternateBandEvenColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AlternateBandOddColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AxesRangeScale": { + "$ref": "#/definitions/RadarChartAxesRangeScale" + }, + "BaseSeriesSettings": { + "$ref": "#/definitions/RadarChartSeriesSettings" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/RadarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Shape": { + "$ref": "#/definitions/RadarChartShape" + }, + "SortConfiguration": { + "$ref": "#/definitions/RadarChartSortConfiguration" + }, + "StartAngle": { + "maximum": 360, + "minimum": -360, + "type": "number" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "RadarChartFieldWells": { + "additionalProperties": false, + "properties": { + "RadarChartAggregatedFieldWells": { + "$ref": "#/definitions/RadarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "RadarChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "AreaStyleSettings": { + "$ref": "#/definitions/RadarChartAreaStyleSettings" + } + }, + "type": "object" + }, + "RadarChartShape": { + "enum": [ + "CIRCLE", + "POLYGON" + ], + "type": "string" + }, + "RadarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/RadarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "RangeEndsLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ReferenceLine": { + "additionalProperties": false, + "properties": { + "DataConfiguration": { + "$ref": "#/definitions/ReferenceLineDataConfiguration" + }, + "LabelConfiguration": { + "$ref": "#/definitions/ReferenceLineLabelConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "StyleConfiguration": { + "$ref": "#/definitions/ReferenceLineStyleConfiguration" + } + }, + "required": [ + "DataConfiguration" + ], + "type": "object" + }, + "ReferenceLineCustomLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "CustomLabel" + ], + "type": "object" + }, + "ReferenceLineDataConfiguration": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "DynamicConfiguration": { + "$ref": "#/definitions/ReferenceLineDynamicDataConfiguration" + }, + "SeriesType": { + "$ref": "#/definitions/ReferenceLineSeriesType" + }, + "StaticConfiguration": { + "$ref": "#/definitions/ReferenceLineStaticDataConfiguration" + } + }, + "type": "object" + }, + "ReferenceLineDynamicDataConfiguration": { + "additionalProperties": false, + "properties": { + "Calculation": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "MeasureAggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + } + }, + "required": [ + "Calculation", + "Column" + ], + "type": "object" + }, + "ReferenceLineLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineCustomLabelConfiguration" + }, + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalPosition": { + "$ref": "#/definitions/ReferenceLineLabelHorizontalPosition" + }, + "ValueLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineValueLabelConfiguration" + }, + "VerticalPosition": { + "$ref": "#/definitions/ReferenceLineLabelVerticalPosition" + } + }, + "type": "object" + }, + "ReferenceLineLabelHorizontalPosition": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "ReferenceLineLabelVerticalPosition": { + "enum": [ + "ABOVE", + "BELOW" + ], + "type": "string" + }, + "ReferenceLinePatternType": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "ReferenceLineSeriesType": { + "enum": [ + "BAR", + "LINE" + ], + "type": "string" + }, + "ReferenceLineStaticDataConfiguration": { + "additionalProperties": false, + "properties": { + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "ReferenceLineStyleConfiguration": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Pattern": { + "$ref": "#/definitions/ReferenceLinePatternType" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + }, + "RelativePosition": { + "$ref": "#/definitions/ReferenceLineValueLabelRelativePosition" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelRelativePosition": { + "enum": [ + "BEFORE_CUSTOM_LABEL", + "AFTER_CUSTOM_LABEL" + ], + "type": "string" + }, + "RelativeDateTimeControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "RelativeDateType": { + "enum": [ + "PREVIOUS", + "THIS", + "LAST", + "NOW", + "NEXT" + ], + "type": "string" + }, + "RelativeDatesFilter": { + "additionalProperties": false, + "properties": { + "AnchorDateConfiguration": { + "$ref": "#/definitions/AnchorDateConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MinimumGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RelativeDateType": { + "$ref": "#/definitions/RelativeDateType" + }, + "RelativeDateValue": { + "default": null, + "type": "number" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AnchorDateConfiguration", + "Column", + "FilterId", + "NullOption", + "RelativeDateType", + "TimeGranularity" + ], + "type": "object" + }, + "RelativeFontSize": { + "enum": [ + "EXTRA_SMALL", + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ], + "type": "string" + }, + "ResizeOption": { + "enum": [ + "FIXED", + "RESPONSIVE" + ], + "type": "string" + }, + "ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + }, + "Principal": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "ResourceStatus": { + "enum": [ + "CREATION_IN_PROGRESS", + "CREATION_SUCCESSFUL", + "CREATION_FAILED", + "UPDATE_IN_PROGRESS", + "UPDATE_SUCCESSFUL", + "UPDATE_FAILED", + "DELETED" + ], + "type": "string" + }, + "RollingDateConfiguration": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "RowAlternateColorOptions": { + "additionalProperties": false, + "properties": { + "RowAlternateColors": { + "items": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "UsePrimaryBackgroundColor": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "type": "object" + }, + "SameSheetTargetVisualConfiguration": { + "additionalProperties": false, + "properties": { + "TargetVisualOptions": { + "$ref": "#/definitions/TargetVisualOptions" + }, + "TargetVisuals": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Destination": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Source": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Weight": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/SankeyDiagramFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/SankeyDiagramSortConfiguration" + } + }, + "type": "object" + }, + "SankeyDiagramFieldWells": { + "additionalProperties": false, + "properties": { + "SankeyDiagramAggregatedFieldWells": { + "$ref": "#/definitions/SankeyDiagramAggregatedFieldWells" + } + }, + "type": "object" + }, + "SankeyDiagramSortConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SourceItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "WeightSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/SankeyDiagramChartConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScatterPlotCategoricallyAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ScatterPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "YAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "ScatterPlotFieldWells": { + "additionalProperties": false, + "properties": { + "ScatterPlotCategoricallyAggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotCategoricallyAggregatedFieldWells" + }, + "ScatterPlotUnaggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "ScatterPlotUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ScatterPlotConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScrollBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "VisibleRange": { + "$ref": "#/definitions/VisibleRangeOptions" + } + }, + "type": "object" + }, + "SecondaryValueOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SectionAfterPageBreak": { + "additionalProperties": false, + "properties": { + "Status": { + "$ref": "#/definitions/SectionPageBreakStatus" + } + }, + "type": "object" + }, + "SectionBasedLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperCanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutPaperCanvasSizeOptions" + } + }, + "type": "object" + }, + "SectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "BodySections": { + "items": { + "$ref": "#/definitions/BodySectionConfiguration" + }, + "maxItems": 28, + "minItems": 0, + "type": "array" + }, + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + }, + "FooterSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "HeaderSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "BodySections", + "CanvasSizeOptions", + "FooterSections", + "HeaderSections" + ], + "type": "object" + }, + "SectionBasedLayoutPaperCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperMargin": { + "$ref": "#/definitions/Spacing" + }, + "PaperOrientation": { + "$ref": "#/definitions/PaperOrientation" + }, + "PaperSize": { + "$ref": "#/definitions/PaperSize" + } + }, + "type": "object" + }, + "SectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormSectionLayoutConfiguration" + } + }, + "required": [ + "FreeFormLayout" + ], + "type": "object" + }, + "SectionPageBreakConfiguration": { + "additionalProperties": false, + "properties": { + "After": { + "$ref": "#/definitions/SectionAfterPageBreak" + } + }, + "type": "object" + }, + "SectionPageBreakStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "SectionStyle": { + "additionalProperties": false, + "properties": { + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "Padding": { + "$ref": "#/definitions/Spacing" + } + }, + "type": "object" + }, + "SelectAllValueOptions": { + "enum": [ + "ALL_VALUES" + ], + "type": "string" + }, + "SelectedFieldOptions": { + "enum": [ + "ALL_FIELDS" + ], + "type": "string" + }, + "SelectedSheetsFilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "SheetVisualScopingConfigurations": { + "items": { + "$ref": "#/definitions/SheetVisualScopingConfiguration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SelectedTooltipType": { + "enum": [ + "BASIC", + "DETAILED" + ], + "type": "string" + }, + "SeriesItem": { + "additionalProperties": false, + "properties": { + "DataFieldSeriesItem": { + "$ref": "#/definitions/DataFieldSeriesItem" + }, + "FieldSeriesItem": { + "$ref": "#/definitions/FieldSeriesItem" + } + }, + "type": "object" + }, + "SetParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/DestinationParameterValueConfiguration" + } + }, + "required": [ + "DestinationParameterName", + "Value" + ], + "type": "object" + }, + "ShapeConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "required": [ + "BackgroundColor" + ], + "type": "object" + }, + "Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "type": "object" + }, + "SheetContentType": { + "enum": [ + "PAGINATED", + "INTERACTIVE" + ], + "type": "string" + }, + "SheetControlDateTimePickerType": { + "enum": [ + "SINGLE_VALUED", + "DATE_RANGE" + ], + "type": "string" + }, + "SheetControlInfoIconLabelOptions": { + "additionalProperties": false, + "properties": { + "InfoIconText": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetControlLayout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/SheetControlLayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "SheetControlLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + } + }, + "type": "object" + }, + "SheetControlListType": { + "enum": [ + "MULTI_SELECT", + "SINGLE_SELECT" + ], + "type": "string" + }, + "SheetControlSliderType": { + "enum": [ + "SINGLE_POINT", + "RANGE" + ], + "type": "string" + }, + "SheetControlsOption": { + "additionalProperties": false, + "properties": { + "VisibilityState": { + "$ref": "#/definitions/DashboardUIState" + } + }, + "type": "object" + }, + "SheetDefinition": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/SheetContentType" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "FilterControls": { + "items": { + "$ref": "#/definitions/FilterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Layouts": { + "items": { + "$ref": "#/definitions/Layout" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ParameterControls": { + "items": { + "$ref": "#/definitions/ParameterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SheetControlLayouts": { + "items": { + "$ref": "#/definitions/SheetControlLayout" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "TextBoxes": { + "items": { + "$ref": "#/definitions/SheetTextBox" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Title": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visuals": { + "items": { + "$ref": "#/definitions/Visual" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "SheetId" + ], + "type": "object" + }, + "SheetElementConfigurationOverrides": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetElementRenderingRule": { + "additionalProperties": false, + "properties": { + "ConfigurationOverrides": { + "$ref": "#/definitions/SheetElementConfigurationOverrides" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ConfigurationOverrides", + "Expression" + ], + "type": "object" + }, + "SheetLayoutElementMaximizationOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "SheetTextBox": { + "additionalProperties": false, + "properties": { + "Content": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + }, + "SheetTextBoxId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "SheetTextBoxId" + ], + "type": "object" + }, + "SheetVisualScopingConfiguration": { + "additionalProperties": false, + "properties": { + "Scope": { + "$ref": "#/definitions/FilterVisualScope" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "VisualIds": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Scope", + "SheetId" + ], + "type": "object" + }, + "ShortFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SimpleAttributeAggregationFunction": { + "enum": [ + "UNIQUE_VALUE" + ], + "type": "string" + }, + "SimpleClusterMarker": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + }, + "SimpleNumericalAggregationFunction": { + "enum": [ + "SUM", + "AVERAGE", + "MIN", + "MAX", + "COUNT", + "DISTINCT_COUNT", + "VAR", + "VARP", + "STDEV", + "STDEVP", + "MEDIAN" + ], + "type": "string" + }, + "SimpleTotalAggregationFunction": { + "enum": [ + "DEFAULT", + "SUM", + "AVERAGE", + "MIN", + "MAX", + "NONE" + ], + "type": "string" + }, + "SliderControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "SmallMultiplesAxisPlacement": { + "enum": [ + "OUTSIDE", + "INSIDE" + ], + "type": "string" + }, + "SmallMultiplesAxisProperties": { + "additionalProperties": false, + "properties": { + "Placement": { + "$ref": "#/definitions/SmallMultiplesAxisPlacement" + }, + "Scale": { + "$ref": "#/definitions/SmallMultiplesAxisScale" + } + }, + "type": "object" + }, + "SmallMultiplesAxisScale": { + "enum": [ + "SHARED", + "INDEPENDENT" + ], + "type": "string" + }, + "SmallMultiplesOptions": { + "additionalProperties": false, + "properties": { + "MaxVisibleColumns": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "MaxVisibleRows": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "PanelConfiguration": { + "$ref": "#/definitions/PanelConfiguration" + }, + "XAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + }, + "YAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + } + }, + "type": "object" + }, + "SortDirection": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + }, + "Spacing": { + "additionalProperties": false, + "properties": { + "Bottom": { + "description": "String based length that is composed of value and unit", + "type": "string" + }, + "Left": { + "description": "String based length that is composed of value and unit", + "type": "string" + }, + "Right": { + "description": "String based length that is composed of value and unit", + "type": "string" + }, + "Top": { + "description": "String based length that is composed of value and unit", + "type": "string" + } + }, + "type": "object" + }, + "SpecialValue": { + "enum": [ + "EMPTY", + "NULL", + "OTHER" + ], + "type": "string" + }, + "StringDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "StringFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "StringParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "StringParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/StringDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/StringValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "StringValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "StyledCellType": { + "enum": [ + "TOTAL", + "METRIC_HEADER", + "VALUE" + ], + "type": "string" + }, + "SubtotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FieldLevel": { + "$ref": "#/definitions/PivotTableSubtotalLevel" + }, + "FieldLevelOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldSubtotalOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "StyleTargets": { + "items": { + "$ref": "#/definitions/TableStyleTarget" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "TableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableBorderOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/TableBorderStyle" + }, + "Thickness": { + "maximum": 4, + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "TableBorderStyle": { + "enum": [ + "NONE", + "SOLID" + ], + "type": "string" + }, + "TableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableCellImageScalingConfiguration": { + "enum": [ + "FIT_TO_CELL_HEIGHT", + "FIT_TO_CELL_WIDTH", + "DO_NOT_SCALE" + ], + "type": "string" + }, + "TableCellImageSizingConfiguration": { + "additionalProperties": false, + "properties": { + "TableCellImageScalingConfiguration": { + "$ref": "#/definitions/TableCellImageScalingConfiguration" + } + }, + "type": "object" + }, + "TableCellStyle": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Border": { + "$ref": "#/definitions/GlobalTableBorderOptions" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Height": { + "maximum": 500, + "minimum": 8, + "type": "number" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "TextWrap": { + "$ref": "#/definitions/TextWrap" + }, + "VerticalTextAlignment": { + "$ref": "#/definitions/VerticalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/TableConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/TableCellConditionalFormatting" + }, + "Row": { + "$ref": "#/definitions/TableRowConditionalFormatting" + } + }, + "type": "object" + }, + "TableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/TableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/TablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TableSortConfiguration" + }, + "TableInlineVisualizations": { + "items": { + "$ref": "#/definitions/TableInlineVisualization" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TableOptions": { + "$ref": "#/definitions/TableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/TotalOptions" + } + }, + "type": "object" + }, + "TableFieldCustomIconContent": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/TableFieldIconSetType" + } + }, + "type": "object" + }, + "TableFieldCustomTextContent": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "FontConfiguration" + ], + "type": "object" + }, + "TableFieldIconSetType": { + "enum": [ + "LINK" + ], + "type": "string" + }, + "TableFieldImageConfiguration": { + "additionalProperties": false, + "properties": { + "SizingOptions": { + "$ref": "#/definitions/TableCellImageSizingConfiguration" + } + }, + "type": "object" + }, + "TableFieldLinkConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/TableFieldLinkContentConfiguration" + }, + "Target": { + "$ref": "#/definitions/URLTargetConfiguration" + } + }, + "required": [ + "Content", + "Target" + ], + "type": "object" + }, + "TableFieldLinkContentConfiguration": { + "additionalProperties": false, + "properties": { + "CustomIconContent": { + "$ref": "#/definitions/TableFieldCustomIconContent" + }, + "CustomTextContent": { + "$ref": "#/definitions/TableFieldCustomTextContent" + } + }, + "type": "object" + }, + "TableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "URLStyling": { + "$ref": "#/definitions/TableFieldURLConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableFieldOptions": { + "additionalProperties": false, + "properties": { + "Order": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "PinnedFieldOptions": { + "$ref": "#/definitions/TablePinnedFieldOptions" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/TableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableFieldURLConfiguration": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/TableFieldImageConfiguration" + }, + "LinkConfiguration": { + "$ref": "#/definitions/TableFieldLinkConfiguration" + } + }, + "type": "object" + }, + "TableFieldWells": { + "additionalProperties": false, + "properties": { + "TableAggregatedFieldWells": { + "$ref": "#/definitions/TableAggregatedFieldWells" + }, + "TableUnaggregatedFieldWells": { + "$ref": "#/definitions/TableUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "TableInlineVisualization": { + "additionalProperties": false, + "properties": { + "DataBars": { + "$ref": "#/definitions/DataBarsOptions" + } + }, + "type": "object" + }, + "TableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "HeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Orientation": { + "$ref": "#/definitions/TableOrientation" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + } + }, + "type": "object" + }, + "TableOrientation": { + "enum": [ + "VERTICAL", + "HORIZONTAL" + ], + "type": "string" + }, + "TablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TablePinnedFieldOptions": { + "additionalProperties": false, + "properties": { + "PinnedLeftFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 201, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableRowConditionalFormatting": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TableSideBorderOptions": { + "additionalProperties": false, + "properties": { + "Bottom": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerHorizontal": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerVertical": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Left": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Right": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Top": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "TableSortConfiguration": { + "additionalProperties": false, + "properties": { + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + }, + "RowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableStyleTarget": { + "additionalProperties": false, + "properties": { + "CellType": { + "$ref": "#/definitions/StyledCellType" + } + }, + "required": [ + "CellType" + ], + "type": "object" + }, + "TableTotalsPlacement": { + "enum": [ + "START", + "END", + "AUTO" + ], + "type": "string" + }, + "TableTotalsScrollStatus": { + "enum": [ + "PINNED", + "SCROLLED" + ], + "type": "string" + }, + "TableUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/UnaggregatedField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/TableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TargetVisualOptions": { + "enum": [ + "ALL_VISUALS" + ], + "type": "string" + }, + "TextAreaControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TextControlPlaceholderOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TextFieldControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextWrap": { + "enum": [ + "NONE", + "WRAP" + ], + "type": "string" + }, + "ThousandSeparatorOptions": { + "additionalProperties": false, + "properties": { + "Symbol": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TimeBasedForecastProperties": { + "additionalProperties": false, + "properties": { + "LowerBoundary": { + "default": null, + "type": "number" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "UpperBoundary": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "TimeEqualityFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Value": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "Column", + "FilterId" + ], + "type": "object" + }, + "TimeGranularity": { + "enum": [ + "YEAR", + "QUARTER", + "MONTH", + "WEEK", + "DAY", + "HOUR", + "MINUTE", + "SECOND", + "MILLISECOND" + ], + "type": "string" + }, + "TimeRangeDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "RangeMaximum": { + "format": "date-time", + "type": "string" + }, + "RangeMinimum": { + "format": "date-time", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "RangeMaximum", + "RangeMinimum", + "TimeGranularity" + ], + "type": "object" + }, + "TimeRangeFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "RangeMinimumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "TimeRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValue": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "TooltipItem": { + "additionalProperties": false, + "properties": { + "ColumnTooltipItem": { + "$ref": "#/definitions/ColumnTooltipItem" + }, + "FieldTooltipItem": { + "$ref": "#/definitions/FieldTooltipItem" + } + }, + "type": "object" + }, + "TooltipOptions": { + "additionalProperties": false, + "properties": { + "FieldBasedTooltip": { + "$ref": "#/definitions/FieldBasedTooltip" + }, + "SelectedTooltipType": { + "$ref": "#/definitions/SelectedTooltipType" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TooltipTitleType": { + "enum": [ + "NONE", + "PRIMARY_VALUE" + ], + "type": "string" + }, + "TopBottomComputationType": { + "enum": [ + "TOP", + "BOTTOM" + ], + "type": "string" + }, + "TopBottomFilter": { + "additionalProperties": false, + "properties": { + "AggregationSortConfigurations": { + "items": { + "$ref": "#/definitions/AggregationSortConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Limit": { + "default": null, + "type": "number" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AggregationSortConfigurations", + "Column", + "FilterId" + ], + "type": "object" + }, + "TopBottomMoversComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MoverSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Name": { + "type": "string" + }, + "SortOrder": { + "$ref": "#/definitions/TopBottomSortOrder" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomRankedComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResultSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomSortOrder": { + "enum": [ + "PERCENT_DIFFERENCE", + "ABSOLUTE_DIFFERENCE" + ], + "type": "string" + }, + "TotalAggregationComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "TotalAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleTotalAggregationFunction": { + "$ref": "#/definitions/SimpleTotalAggregationFunction" + } + }, + "type": "object" + }, + "TotalAggregationOption": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TotalAggregationFunction": { + "$ref": "#/definitions/TotalAggregationFunction" + } + }, + "required": [ + "FieldId", + "TotalAggregationFunction" + ], + "type": "object" + }, + "TotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TreeMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Groups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Sizes": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TreeMapFieldWells" + }, + "GroupLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SizeLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TreeMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "TreeMapFieldWells": { + "additionalProperties": false, + "properties": { + "TreeMapAggregatedFieldWells": { + "$ref": "#/definitions/TreeMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "TreeMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "TreeMapGroupItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "TreeMapSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TreeMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "TrendArrowOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "URLTargetConfiguration": { + "enum": [ + "NEW_TAB", + "NEW_WINDOW", + "SAME_TAB" + ], + "type": "string" + }, + "UnaggregatedField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "UniqueValuesComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ValidationStrategy": { + "additionalProperties": false, + "properties": { + "Mode": { + "$ref": "#/definitions/ValidationStrategyMode" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ValidationStrategyMode": { + "enum": [ + "STRICT", + "LENIENT" + ], + "type": "string" + }, + "ValueWhenUnsetOption": { + "enum": [ + "RECOMMENDED_VALUE", + "NULL" + ], + "type": "string" + }, + "VerticalTextAlignment": { + "enum": [ + "TOP", + "MIDDLE", + "BOTTOM", + "AUTO" + ], + "type": "string" + }, + "Visibility": { + "enum": [ + "HIDDEN", + "VISIBLE" + ], + "type": "string" + }, + "VisibleRangeOptions": { + "additionalProperties": false, + "properties": { + "PercentRange": { + "$ref": "#/definitions/PercentVisibleRange" + } + }, + "type": "object" + }, + "Visual": { + "additionalProperties": false, + "properties": { + "BarChartVisual": { + "$ref": "#/definitions/BarChartVisual" + }, + "BoxPlotVisual": { + "$ref": "#/definitions/BoxPlotVisual" + }, + "ComboChartVisual": { + "$ref": "#/definitions/ComboChartVisual" + }, + "CustomContentVisual": { + "$ref": "#/definitions/CustomContentVisual" + }, + "EmptyVisual": { + "$ref": "#/definitions/EmptyVisual" + }, + "FilledMapVisual": { + "$ref": "#/definitions/FilledMapVisual" + }, + "FunnelChartVisual": { + "$ref": "#/definitions/FunnelChartVisual" + }, + "GaugeChartVisual": { + "$ref": "#/definitions/GaugeChartVisual" + }, + "GeospatialMapVisual": { + "$ref": "#/definitions/GeospatialMapVisual" + }, + "HeatMapVisual": { + "$ref": "#/definitions/HeatMapVisual" + }, + "HistogramVisual": { + "$ref": "#/definitions/HistogramVisual" + }, + "InsightVisual": { + "$ref": "#/definitions/InsightVisual" + }, + "KPIVisual": { + "$ref": "#/definitions/KPIVisual" + }, + "LineChartVisual": { + "$ref": "#/definitions/LineChartVisual" + }, + "PieChartVisual": { + "$ref": "#/definitions/PieChartVisual" + }, + "PivotTableVisual": { + "$ref": "#/definitions/PivotTableVisual" + }, + "RadarChartVisual": { + "$ref": "#/definitions/RadarChartVisual" + }, + "SankeyDiagramVisual": { + "$ref": "#/definitions/SankeyDiagramVisual" + }, + "ScatterPlotVisual": { + "$ref": "#/definitions/ScatterPlotVisual" + }, + "TableVisual": { + "$ref": "#/definitions/TableVisual" + }, + "TreeMapVisual": { + "$ref": "#/definitions/TreeMapVisual" + }, + "WaterfallVisual": { + "$ref": "#/definitions/WaterfallVisual" + }, + "WordCloudVisual": { + "$ref": "#/definitions/WordCloudVisual" + } + }, + "type": "object" + }, + "VisualAxisSortOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "VisualCustomAction": { + "additionalProperties": false, + "properties": { + "ActionOperations": { + "items": { + "$ref": "#/definitions/VisualCustomActionOperation" + }, + "maxItems": 2, + "minItems": 1, + "type": "array" + }, + "CustomActionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "Trigger": { + "$ref": "#/definitions/VisualCustomActionTrigger" + } + }, + "required": [ + "ActionOperations", + "CustomActionId", + "Name", + "Trigger" + ], + "type": "object" + }, + "VisualCustomActionOperation": { + "additionalProperties": false, + "properties": { + "FilterOperation": { + "$ref": "#/definitions/CustomActionFilterOperation" + }, + "NavigationOperation": { + "$ref": "#/definitions/CustomActionNavigationOperation" + }, + "SetParametersOperation": { + "$ref": "#/definitions/CustomActionSetParametersOperation" + }, + "URLOperation": { + "$ref": "#/definitions/CustomActionURLOperation" + } + }, + "type": "object" + }, + "VisualCustomActionTrigger": { + "enum": [ + "DATA_POINT_CLICK", + "DATA_POINT_MENU" + ], + "type": "string" + }, + "VisualMenuOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "$ref": "#/definitions/DashboardBehavior" + } + }, + "type": "object" + }, + "VisualPalette": { + "additionalProperties": false, + "properties": { + "ChartColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "ColorMap": { + "items": { + "$ref": "#/definitions/DataPathColor" + }, + "maxItems": 5000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "VisualSubtitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/LongFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "VisualTitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/ShortFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "WaterfallChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Breakdowns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Categories": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WaterfallChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/WaterfallChartSortConfiguration" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WaterfallChartOptions": { + "$ref": "#/definitions/WaterfallChartOptions" + } + }, + "type": "object" + }, + "WaterfallChartFieldWells": { + "additionalProperties": false, + "properties": { + "WaterfallChartAggregatedFieldWells": { + "$ref": "#/definitions/WaterfallChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "WaterfallChartOptions": { + "additionalProperties": false, + "properties": { + "TotalBarLabel": { + "type": "string" + } + }, + "type": "object" + }, + "WaterfallChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "BreakdownItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WaterfallChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WhatIfPointScenario": { + "additionalProperties": false, + "properties": { + "Date": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Date", + "Value" + ], + "type": "object" + }, + "WhatIfRangeScenario": { + "additionalProperties": false, + "properties": { + "EndDate": { + "format": "date-time", + "type": "string" + }, + "StartDate": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "EndDate", + "StartDate", + "Value" + ], + "type": "object" + }, + "WidgetStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "WordCloudAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WordCloudFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/WordCloudSortConfiguration" + }, + "WordCloudOptions": { + "$ref": "#/definitions/WordCloudOptions" + } + }, + "type": "object" + }, + "WordCloudCloudLayout": { + "enum": [ + "FLUID", + "NORMAL" + ], + "type": "string" + }, + "WordCloudFieldWells": { + "additionalProperties": false, + "properties": { + "WordCloudAggregatedFieldWells": { + "$ref": "#/definitions/WordCloudAggregatedFieldWells" + } + }, + "type": "object" + }, + "WordCloudOptions": { + "additionalProperties": false, + "properties": { + "CloudLayout": { + "$ref": "#/definitions/WordCloudCloudLayout" + }, + "MaximumStringLength": { + "maximum": 100, + "minimum": 1, + "type": "number" + }, + "WordCasing": { + "$ref": "#/definitions/WordCloudWordCasing" + }, + "WordOrientation": { + "$ref": "#/definitions/WordCloudWordOrientation" + }, + "WordPadding": { + "$ref": "#/definitions/WordCloudWordPadding" + }, + "WordScaling": { + "$ref": "#/definitions/WordCloudWordScaling" + } + }, + "type": "object" + }, + "WordCloudSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WordCloudChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WordCloudWordCasing": { + "enum": [ + "LOWER_CASE", + "EXISTING_CASE" + ], + "type": "string" + }, + "WordCloudWordOrientation": { + "enum": [ + "HORIZONTAL", + "HORIZONTAL_AND_VERTICAL" + ], + "type": "string" + }, + "WordCloudWordPadding": { + "enum": [ + "NONE", + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "WordCloudWordScaling": { + "enum": [ + "EMPHASIZE", + "NORMAL" + ], + "type": "string" + } + }, + "description": "Definition of the AWS::QuickSight::Dashboard Resource Type.", + "handlers": { + "create": { + "permissions": [ + "quicksight:DescribeDashboard", + "quicksight:DescribeDashboardPermissions", + "quicksight:CreateDashboard", + "quicksight:DescribeTemplate", + "quicksight:DescribeTheme", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "quicksight:DescribeDashboard", + "quicksight:DeleteDashboard" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "AwsAccountId": { + "$ref": "resource-schema.json#/properties/AwsAccountId" + } + }, + "required": [ + "AwsAccountId" + ] + }, + "permissions": [ + "quicksight:ListDashboards" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeDashboard", + "quicksight:DescribeDashboardPermissions", + "quicksight:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "quicksight:DescribeDashboard", + "quicksight:DescribeDashboardPermissions", + "quicksight:UpdateDashboard", + "quicksight:UpdateDashboardPermissions", + "quicksight:UpdateDashboardPublishedVersion", + "quicksight:DescribeTemplate", + "quicksight:DescribeTheme", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AwsAccountId", + "/properties/DashboardId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "DashboardId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "DashboardPublishOptions": { + "$ref": "#/definitions/DashboardPublishOptions" + }, + "Definition": { + "$ref": "#/definitions/DashboardVersionDefinition" + }, + "LastPublishedTime": { + "format": "date-time", + "type": "string" + }, + "LastUpdatedTime": { + "format": "date-time", + "type": "string" + }, + "LinkSharingConfiguration": { + "$ref": "#/definitions/LinkSharingConfiguration" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/Parameters" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/DashboardSourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "ThemeArn": { + "type": "string" + }, + "ValidationStrategy": { + "$ref": "#/definitions/ValidationStrategy" + }, + "Version": { + "$ref": "#/definitions/DashboardVersion" + }, + "VersionDescription": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedTime", + "/properties/LastPublishedTime", + "/properties/LastUpdatedTime", + "/properties/Version" + ], + "required": [ + "AwsAccountId", + "DashboardId", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-quicksight", + "typeName": "AWS::QuickSight::Dashboard", + "writeOnlyProperties": [ + "/properties/DashboardPublishOptions", + "/properties/Definition", + "/properties/LinkSharingConfiguration", + "/properties/Parameters", + "/properties/SourceEntity", + "/properties/ThemeArn", + "/properties/VersionDescription", + "/properties/ValidationStrategy" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-template.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-template.json new file mode 100644 index 0000000000..4dce59a9cd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-template.json @@ -0,0 +1,11028 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/TemplateId" + ], + "definitions": { + "AggregationFunction": { + "additionalProperties": false, + "properties": { + "AttributeAggregationFunction": { + "$ref": "#/definitions/AttributeAggregationFunction" + }, + "CategoricalAggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "DateAggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "NumericalAggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + } + }, + "type": "object" + }, + "AggregationSortConfiguration": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SortDirection": { + "$ref": "#/definitions/SortDirection" + } + }, + "required": [ + "Column", + "SortDirection" + ], + "type": "object" + }, + "AllSheetsFilterScopeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "AnalysisDefaults": { + "additionalProperties": false, + "properties": { + "DefaultNewSheetConfiguration": { + "$ref": "#/definitions/DefaultNewSheetConfiguration" + } + }, + "required": [ + "DefaultNewSheetConfiguration" + ], + "type": "object" + }, + "AnchorDateConfiguration": { + "additionalProperties": false, + "properties": { + "AnchorOption": { + "$ref": "#/definitions/AnchorOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "type": "object" + }, + "AnchorOption": { + "enum": [ + "NOW" + ], + "type": "string" + }, + "ArcAxisConfiguration": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/ArcAxisDisplayRange" + }, + "ReserveRange": { + "default": 0, + "type": "number" + } + }, + "type": "object" + }, + "ArcAxisDisplayRange": { + "additionalProperties": false, + "properties": { + "Max": { + "default": null, + "type": "number" + }, + "Min": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "ArcConfiguration": { + "additionalProperties": false, + "properties": { + "ArcAngle": { + "default": null, + "type": "number" + }, + "ArcThickness": { + "$ref": "#/definitions/ArcThicknessOptions" + } + }, + "type": "object" + }, + "ArcOptions": { + "additionalProperties": false, + "properties": { + "ArcThickness": { + "$ref": "#/definitions/ArcThickness" + } + }, + "type": "object" + }, + "ArcThickness": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE", + "WHOLE" + ], + "type": "string" + }, + "ArcThicknessOptions": { + "enum": [ + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "AssetOptions": { + "additionalProperties": false, + "properties": { + "Timezone": { + "type": "string" + }, + "WeekStart": { + "$ref": "#/definitions/DayOfTheWeek" + } + }, + "type": "object" + }, + "AttributeAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleAttributeAggregation": { + "$ref": "#/definitions/SimpleAttributeAggregationFunction" + }, + "ValueForMultipleValues": { + "type": "string" + } + }, + "type": "object" + }, + "AxisBinding": { + "enum": [ + "PRIMARY_YAXIS", + "SECONDARY_YAXIS" + ], + "type": "string" + }, + "AxisDataOptions": { + "additionalProperties": false, + "properties": { + "DateAxisOptions": { + "$ref": "#/definitions/DateAxisOptions" + }, + "NumericAxisOptions": { + "$ref": "#/definitions/NumericAxisOptions" + } + }, + "type": "object" + }, + "AxisDisplayDataDrivenRange": { + "additionalProperties": false, + "type": "object" + }, + "AxisDisplayMinMaxRange": { + "additionalProperties": false, + "properties": { + "Maximum": { + "default": null, + "type": "number" + }, + "Minimum": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AxisOffset": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "DataOptions": { + "$ref": "#/definitions/AxisDataOptions" + }, + "GridLineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ScrollbarOptions": { + "$ref": "#/definitions/ScrollBarOptions" + }, + "TickLabelOptions": { + "$ref": "#/definitions/AxisTickLabelOptions" + } + }, + "type": "object" + }, + "AxisDisplayRange": { + "additionalProperties": false, + "properties": { + "DataDriven": { + "$ref": "#/definitions/AxisDisplayDataDrivenRange" + }, + "MinMax": { + "$ref": "#/definitions/AxisDisplayMinMaxRange" + } + }, + "type": "object" + }, + "AxisLabelOptions": { + "additionalProperties": false, + "properties": { + "ApplyTo": { + "$ref": "#/definitions/AxisLabelReferenceOptions" + }, + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "AxisLabelReferenceOptions": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "AxisLinearScale": { + "additionalProperties": false, + "properties": { + "StepCount": { + "default": null, + "type": "number" + }, + "StepSize": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisLogarithmicScale": { + "additionalProperties": false, + "properties": { + "Base": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "AxisScale": { + "additionalProperties": false, + "properties": { + "Linear": { + "$ref": "#/definitions/AxisLinearScale" + }, + "Logarithmic": { + "$ref": "#/definitions/AxisLogarithmicScale" + } + }, + "type": "object" + }, + "AxisTickLabelOptions": { + "additionalProperties": false, + "properties": { + "LabelOptions": { + "$ref": "#/definitions/LabelOptions" + }, + "RotationAngle": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "BarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Orientation": { + "$ref": "#/definitions/BarChartOrientation" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/BarChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BarChartFieldWells": { + "additionalProperties": false, + "properties": { + "BarChartAggregatedFieldWells": { + "$ref": "#/definitions/BarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "BarChartOrientation": { + "enum": [ + "HORIZONTAL", + "VERTICAL" + ], + "type": "string" + }, + "BarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "BarsArrangement": { + "enum": [ + "CLUSTERED", + "STACKED", + "STACKED_PERCENT" + ], + "type": "string" + }, + "BaseMapStyleType": { + "enum": [ + "LIGHT_GRAY", + "DARK_GRAY", + "STREET", + "IMAGERY" + ], + "type": "string" + }, + "BinCountOptions": { + "additionalProperties": false, + "properties": { + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BinWidthOptions": { + "additionalProperties": false, + "properties": { + "BinCountLimit": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "Value": { + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "BodySectionConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/BodySectionContent" + }, + "PageBreakConfiguration": { + "$ref": "#/definitions/SectionPageBreakConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Content", + "SectionId" + ], + "type": "object" + }, + "BodySectionContent": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + } + }, + "type": "object" + }, + "BoxPlotAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "BoxPlotChartConfiguration": { + "additionalProperties": false, + "properties": { + "BoxPlotOptions": { + "$ref": "#/definitions/BoxPlotOptions" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/BoxPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SortConfiguration": { + "$ref": "#/definitions/BoxPlotSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "BoxPlotFieldWells": { + "additionalProperties": false, + "properties": { + "BoxPlotAggregatedFieldWells": { + "$ref": "#/definitions/BoxPlotAggregatedFieldWells" + } + }, + "type": "object" + }, + "BoxPlotFillStyle": { + "enum": [ + "SOLID", + "TRANSPARENT" + ], + "type": "string" + }, + "BoxPlotOptions": { + "additionalProperties": false, + "properties": { + "AllDataPointsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "OutlierVisibility": { + "$ref": "#/definitions/Visibility" + }, + "StyleOptions": { + "$ref": "#/definitions/BoxPlotStyleOptions" + } + }, + "type": "object" + }, + "BoxPlotSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + } + }, + "type": "object" + }, + "BoxPlotStyleOptions": { + "additionalProperties": false, + "properties": { + "FillStyle": { + "$ref": "#/definitions/BoxPlotFillStyle" + } + }, + "type": "object" + }, + "BoxPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/BoxPlotChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "CalculatedField": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 32000, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 127, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "Expression", + "Name" + ], + "type": "object" + }, + "CalculatedMeasureField": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression", + "FieldId" + ], + "type": "object" + }, + "CascadingControlConfiguration": { + "additionalProperties": false, + "properties": { + "SourceControls": { + "items": { + "$ref": "#/definitions/CascadingControlSource" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CascadingControlSource": { + "additionalProperties": false, + "properties": { + "ColumnToMatch": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceSheetControlId": { + "type": "string" + } + }, + "type": "object" + }, + "CategoricalAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT" + ], + "type": "string" + }, + "CategoricalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoricalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/CategoricalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "CategoryDrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "CategoryValues", + "Column" + ], + "type": "object" + }, + "CategoryFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Configuration": { + "$ref": "#/definitions/CategoryFilterConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "Column", + "Configuration", + "FilterId" + ], + "type": "object" + }, + "CategoryFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CustomFilterConfiguration": { + "$ref": "#/definitions/CustomFilterConfiguration" + }, + "CustomFilterListConfiguration": { + "$ref": "#/definitions/CustomFilterListConfiguration" + }, + "FilterListConfiguration": { + "$ref": "#/definitions/FilterListConfiguration" + } + }, + "type": "object" + }, + "CategoryFilterMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL", + "CONTAINS", + "DOES_NOT_CONTAIN", + "STARTS_WITH", + "ENDS_WITH" + ], + "type": "string" + }, + "CategoryFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "ChartAxisLabelOptions": { + "additionalProperties": false, + "properties": { + "AxisLabelOptions": { + "items": { + "$ref": "#/definitions/AxisLabelOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SortIconVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ClusterMarker": { + "additionalProperties": false, + "properties": { + "SimpleClusterMarker": { + "$ref": "#/definitions/SimpleClusterMarker" + } + }, + "type": "object" + }, + "ClusterMarkerConfiguration": { + "additionalProperties": false, + "properties": { + "ClusterMarker": { + "$ref": "#/definitions/ClusterMarker" + } + }, + "type": "object" + }, + "ColorFillType": { + "enum": [ + "DISCRETE", + "GRADIENT" + ], + "type": "string" + }, + "ColorScale": { + "additionalProperties": false, + "properties": { + "ColorFillType": { + "$ref": "#/definitions/ColorFillType" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DataColor" + }, + "maxItems": 3, + "minItems": 2, + "type": "array" + }, + "NullValueColor": { + "$ref": "#/definitions/DataColor" + } + }, + "required": [ + "ColorFillType", + "Colors" + ], + "type": "object" + }, + "ColorsConfiguration": { + "additionalProperties": false, + "properties": { + "CustomColors": { + "items": { + "$ref": "#/definitions/CustomColor" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ColumnConfiguration": { + "additionalProperties": false, + "properties": { + "ColorsConfiguration": { + "$ref": "#/definitions/ColorsConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + }, + "Role": { + "$ref": "#/definitions/ColumnRole" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ColumnGroupColumnSchema": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "ColumnGroupSchema": { + "additionalProperties": false, + "properties": { + "ColumnGroupColumnSchemaList": { + "items": { + "$ref": "#/definitions/ColumnGroupColumnSchema" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "ColumnHierarchy": { + "additionalProperties": false, + "properties": { + "DateTimeHierarchy": { + "$ref": "#/definitions/DateTimeHierarchy" + }, + "ExplicitHierarchy": { + "$ref": "#/definitions/ExplicitHierarchy" + }, + "PredefinedHierarchy": { + "$ref": "#/definitions/PredefinedHierarchy" + } + }, + "type": "object" + }, + "ColumnIdentifier": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ColumnName", + "DataSetIdentifier" + ], + "type": "object" + }, + "ColumnRole": { + "enum": [ + "DIMENSION", + "MEASURE" + ], + "type": "string" + }, + "ColumnSchema": { + "additionalProperties": false, + "properties": { + "DataType": { + "type": "string" + }, + "GeographicRole": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "ColumnSort": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortBy": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "Direction", + "SortBy" + ], + "type": "object" + }, + "ColumnTooltipItem": { + "additionalProperties": false, + "properties": { + "Aggregation": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "ComboChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "BarValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "LineValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartConfiguration": { + "additionalProperties": false, + "properties": { + "BarDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "BarsArrangement": { + "$ref": "#/definitions/BarsArrangement" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ComboChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "LineDataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/ComboChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "ComboChartFieldWells": { + "additionalProperties": false, + "properties": { + "ComboChartAggregatedFieldWells": { + "$ref": "#/definitions/ComboChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "ComboChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ComboChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ComboChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ComparisonConfiguration": { + "additionalProperties": false, + "properties": { + "ComparisonFormat": { + "$ref": "#/definitions/ComparisonFormatConfiguration" + }, + "ComparisonMethod": { + "$ref": "#/definitions/ComparisonMethod" + } + }, + "type": "object" + }, + "ComparisonFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "ComparisonMethod": { + "enum": [ + "DIFFERENCE", + "PERCENT_DIFFERENCE", + "PERCENT" + ], + "type": "string" + }, + "Computation": { + "additionalProperties": false, + "properties": { + "Forecast": { + "$ref": "#/definitions/ForecastComputation" + }, + "GrowthRate": { + "$ref": "#/definitions/GrowthRateComputation" + }, + "MaximumMinimum": { + "$ref": "#/definitions/MaximumMinimumComputation" + }, + "MetricComparison": { + "$ref": "#/definitions/MetricComparisonComputation" + }, + "PeriodOverPeriod": { + "$ref": "#/definitions/PeriodOverPeriodComputation" + }, + "PeriodToDate": { + "$ref": "#/definitions/PeriodToDateComputation" + }, + "TopBottomMovers": { + "$ref": "#/definitions/TopBottomMoversComputation" + }, + "TopBottomRanked": { + "$ref": "#/definitions/TopBottomRankedComputation" + }, + "TotalAggregation": { + "$ref": "#/definitions/TotalAggregationComputation" + }, + "UniqueValues": { + "$ref": "#/definitions/UniqueValuesComputation" + } + }, + "type": "object" + }, + "ConditionalFormattingColor": { + "additionalProperties": false, + "properties": { + "Gradient": { + "$ref": "#/definitions/ConditionalFormattingGradientColor" + }, + "Solid": { + "$ref": "#/definitions/ConditionalFormattingSolidColor" + } + }, + "type": "object" + }, + "ConditionalFormattingCustomIconCondition": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DisplayConfiguration": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayConfiguration" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconOptions": { + "$ref": "#/definitions/ConditionalFormattingCustomIconOptions" + } + }, + "required": [ + "Expression", + "IconOptions" + ], + "type": "object" + }, + "ConditionalFormattingCustomIconOptions": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/Icon" + }, + "UnicodeIcon": { + "pattern": "^[^\\u0000-\\u00FF]$", + "type": "string" + } + }, + "type": "object" + }, + "ConditionalFormattingGradientColor": { + "additionalProperties": false, + "properties": { + "Color": { + "$ref": "#/definitions/GradientColor" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Color", + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIcon": { + "additionalProperties": false, + "properties": { + "CustomCondition": { + "$ref": "#/definitions/ConditionalFormattingCustomIconCondition" + }, + "IconSet": { + "$ref": "#/definitions/ConditionalFormattingIconSet" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayConfiguration": { + "additionalProperties": false, + "properties": { + "IconDisplayOption": { + "$ref": "#/definitions/ConditionalFormattingIconDisplayOption" + } + }, + "type": "object" + }, + "ConditionalFormattingIconDisplayOption": { + "enum": [ + "ICON_ONLY" + ], + "type": "string" + }, + "ConditionalFormattingIconSet": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "IconSetType": { + "$ref": "#/definitions/ConditionalFormattingIconSetType" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ConditionalFormattingIconSetType": { + "enum": [ + "PLUS_MINUS", + "CHECK_X", + "THREE_COLOR_ARROW", + "THREE_GRAY_ARROW", + "CARET_UP_MINUS_DOWN", + "THREE_SHAPE", + "THREE_CIRCLE", + "FLAGS", + "BARS", + "FOUR_COLOR_ARROW", + "FOUR_GRAY_ARROW" + ], + "type": "string" + }, + "ConditionalFormattingSolidColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "ContributionAnalysisDefault": { + "additionalProperties": false, + "properties": { + "ContributorDimensions": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" + }, + "MeasureFieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ContributorDimensions", + "MeasureFieldId" + ], + "type": "object" + }, + "CrossDatasetTypes": { + "enum": [ + "ALL_DATASETS", + "SINGLE_DATASET" + ], + "type": "string" + }, + "CurrencyDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Symbol": { + "pattern": "[A-Z]{3}", + "type": "string" + } + }, + "type": "object" + }, + "CustomActionFilterOperation": { + "additionalProperties": false, + "properties": { + "SelectedFieldsConfiguration": { + "$ref": "#/definitions/FilterOperationSelectedFieldsConfiguration" + }, + "TargetVisualsConfiguration": { + "$ref": "#/definitions/FilterOperationTargetVisualsConfiguration" + } + }, + "required": [ + "SelectedFieldsConfiguration", + "TargetVisualsConfiguration" + ], + "type": "object" + }, + "CustomActionNavigationOperation": { + "additionalProperties": false, + "properties": { + "LocalNavigationConfiguration": { + "$ref": "#/definitions/LocalNavigationConfiguration" + } + }, + "type": "object" + }, + "CustomActionSetParametersOperation": { + "additionalProperties": false, + "properties": { + "ParameterValueConfigurations": { + "items": { + "$ref": "#/definitions/SetParameterValueConfiguration" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ParameterValueConfigurations" + ], + "type": "object" + }, + "CustomActionURLOperation": { + "additionalProperties": false, + "properties": { + "URLTarget": { + "$ref": "#/definitions/URLTargetConfiguration" + }, + "URLTemplate": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "URLTarget", + "URLTemplate" + ], + "type": "object" + }, + "CustomColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "SpecialValue": { + "$ref": "#/definitions/SpecialValue" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "CustomContentConfiguration": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/CustomContentType" + }, + "ContentUrl": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ImageScaling": { + "$ref": "#/definitions/CustomContentImageScalingConfiguration" + } + }, + "type": "object" + }, + "CustomContentImageScalingConfiguration": { + "enum": [ + "FIT_TO_HEIGHT", + "FIT_TO_WIDTH", + "DO_NOT_SCALE", + "SCALE_TO_VISUAL" + ], + "type": "string" + }, + "CustomContentType": { + "enum": [ + "IMAGE", + "OTHER_EMBEDDED_CONTENT" + ], + "type": "string" + }, + "CustomContentVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/CustomContentConfiguration" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "CustomFilterConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValue": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomFilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "CustomNarrativeOptions": { + "additionalProperties": false, + "properties": { + "Narrative": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Narrative" + ], + "type": "object" + }, + "CustomParameterValues": { + "additionalProperties": false, + "properties": { + "DateTimeValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "DecimalValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "IntegerValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + }, + "StringValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "CustomValuesConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValues": { + "$ref": "#/definitions/CustomParameterValues" + }, + "IncludeNullValue": { + "type": "boolean" + } + }, + "required": [ + "CustomValues" + ], + "type": "object" + }, + "DataBarsOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "NegativeColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PositiveColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "DataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "DataFieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "DataLabelContent": { + "enum": [ + "VALUE", + "PERCENT", + "VALUE_AND_PERCENT" + ], + "type": "string" + }, + "DataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DataLabelTypes": { + "items": { + "$ref": "#/definitions/DataLabelType" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelContent": { + "$ref": "#/definitions/DataLabelContent" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Overlap": { + "$ref": "#/definitions/DataLabelOverlap" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataLabelOverlap": { + "enum": [ + "DISABLE_OVERLAP", + "ENABLE_OVERLAP" + ], + "type": "string" + }, + "DataLabelPosition": { + "enum": [ + "INSIDE", + "OUTSIDE", + "LEFT", + "TOP", + "BOTTOM", + "RIGHT" + ], + "type": "string" + }, + "DataLabelType": { + "additionalProperties": false, + "properties": { + "DataPathLabelType": { + "$ref": "#/definitions/DataPathLabelType" + }, + "FieldLabelType": { + "$ref": "#/definitions/FieldLabelType" + }, + "MaximumLabelType": { + "$ref": "#/definitions/MaximumLabelType" + }, + "MinimumLabelType": { + "$ref": "#/definitions/MinimumLabelType" + }, + "RangeEndsLabelType": { + "$ref": "#/definitions/RangeEndsLabelType" + } + }, + "type": "object" + }, + "DataPathColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Element": { + "$ref": "#/definitions/DataPathValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Color", + "Element" + ], + "type": "object" + }, + "DataPathLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DataPathSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "SortPaths": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Direction", + "SortPaths" + ], + "type": "object" + }, + "DataPathType": { + "additionalProperties": false, + "properties": { + "PivotTableDataPathType": { + "$ref": "#/definitions/PivotTableDataPathType" + } + }, + "type": "object" + }, + "DataPathValue": { + "additionalProperties": false, + "properties": { + "DataPathType": { + "$ref": "#/definitions/DataPathType" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FieldValue": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "DataSetConfiguration": { + "additionalProperties": false, + "properties": { + "ColumnGroupSchemaList": { + "items": { + "$ref": "#/definitions/ColumnGroupSchema" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "DataSetSchema": { + "$ref": "#/definitions/DataSetSchema" + }, + "Placeholder": { + "type": "string" + } + }, + "type": "object" + }, + "DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "DataSetPlaceholder": { + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "DataSetSchema": { + "additionalProperties": false, + "properties": { + "ColumnSchemaList": { + "items": { + "$ref": "#/definitions/ColumnSchema" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DateAggregationFunction": { + "enum": [ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX" + ], + "type": "string" + }, + "DateAxisOptions": { + "additionalProperties": false, + "properties": { + "MissingDateVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DateDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "DateGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/DateAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "DateTimeDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValues": { + "items": { + "format": "date-time", + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DateTimeFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "DateTimeHierarchy": { + "additionalProperties": false, + "properties": { + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "HierarchyId" + ], + "type": "object" + }, + "DateTimeParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DateTimeDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DateTimeValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "DateTimePickerControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DateTimeValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "format": "date-time", + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DayOfTheWeek": { + "enum": [ + "SUNDAY", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY" + ], + "type": "string" + }, + "DecimalDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "DecimalParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/DecimalDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/DecimalValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "DecimalPlacesConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlaces": { + "maximum": 20, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "DecimalPlaces" + ], + "type": "object" + }, + "DecimalValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "DefaultFreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultGridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DefaultInteractiveLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeForm": { + "$ref": "#/definitions/DefaultFreeFormLayoutConfiguration" + }, + "Grid": { + "$ref": "#/definitions/DefaultGridLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultNewSheetConfiguration": { + "additionalProperties": false, + "properties": { + "InteractiveLayoutConfiguration": { + "$ref": "#/definitions/DefaultInteractiveLayoutConfiguration" + }, + "PaginatedLayoutConfiguration": { + "$ref": "#/definitions/DefaultPaginatedLayoutConfiguration" + }, + "SheetContentType": { + "$ref": "#/definitions/SheetContentType" + } + }, + "type": "object" + }, + "DefaultPaginatedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "SectionBased": { + "$ref": "#/definitions/DefaultSectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "DefaultSectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + } + }, + "required": [ + "CanvasSizeOptions" + ], + "type": "object" + }, + "DestinationParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValuesConfiguration": { + "$ref": "#/definitions/CustomValuesConfiguration" + }, + "SelectAllValueOptions": { + "$ref": "#/definitions/SelectAllValueOptions" + }, + "SourceColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "SourceField": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SourceParameterName": { + "type": "string" + } + }, + "type": "object" + }, + "DimensionField": { + "additionalProperties": false, + "properties": { + "CategoricalDimensionField": { + "$ref": "#/definitions/CategoricalDimensionField" + }, + "DateDimensionField": { + "$ref": "#/definitions/DateDimensionField" + }, + "NumericalDimensionField": { + "$ref": "#/definitions/NumericalDimensionField" + } + }, + "type": "object" + }, + "DonutCenterOptions": { + "additionalProperties": false, + "properties": { + "LabelVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "DonutOptions": { + "additionalProperties": false, + "properties": { + "ArcOptions": { + "$ref": "#/definitions/ArcOptions" + }, + "DonutCenterOptions": { + "$ref": "#/definitions/DonutCenterOptions" + } + }, + "type": "object" + }, + "DrillDownFilter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryDrillDownFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityDrillDownFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeDrillDownFilter" + } + }, + "type": "object" + }, + "DropDownControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "DynamicDefaultValue": { + "additionalProperties": false, + "properties": { + "DefaultValueColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "GroupNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "UserNameColumn": { + "$ref": "#/definitions/ColumnIdentifier" + } + }, + "required": [ + "DefaultValueColumn" + ], + "type": "object" + }, + "EmptyVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "Entity": { + "additionalProperties": false, + "properties": { + "Path": { + "pattern": ".*\\S.*", + "type": "string" + } + }, + "type": "object" + }, + "ExcludePeriodConfiguration": { + "additionalProperties": false, + "properties": { + "Amount": { + "default": null, + "type": "number" + }, + "Granularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "Amount", + "Granularity" + ], + "type": "object" + }, + "ExplicitHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 2, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "FieldBasedTooltip": { + "additionalProperties": false, + "properties": { + "AggregationVisibility": { + "$ref": "#/definitions/Visibility" + }, + "TooltipFields": { + "items": { + "$ref": "#/definitions/TooltipItem" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "TooltipTitleType": { + "$ref": "#/definitions/TooltipTitleType" + } + }, + "type": "object" + }, + "FieldLabelType": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FieldSeriesItem": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/LineChartSeriesSettings" + } + }, + "required": [ + "AxisBinding", + "FieldId" + ], + "type": "object" + }, + "FieldSort": { + "additionalProperties": false, + "properties": { + "Direction": { + "$ref": "#/definitions/SortDirection" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Direction", + "FieldId" + ], + "type": "object" + }, + "FieldSortOptions": { + "additionalProperties": false, + "properties": { + "ColumnSort": { + "$ref": "#/definitions/ColumnSort" + }, + "FieldSort": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "FieldTooltipItem": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Label": { + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/FilledMapConditionalFormattingOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "ConditionalFormattingOptions" + ], + "type": "object" + }, + "FilledMapConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Shape": { + "$ref": "#/definitions/FilledMapShapeConditionalFormatting" + } + }, + "required": [ + "Shape" + ], + "type": "object" + }, + "FilledMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/FilledMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/FilledMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "FilledMapFieldWells": { + "additionalProperties": false, + "properties": { + "FilledMapAggregatedFieldWells": { + "$ref": "#/definitions/FilledMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "FilledMapShapeConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Format": { + "$ref": "#/definitions/ShapeConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "FilledMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilledMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FilledMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/FilledMapConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Filter": { + "additionalProperties": false, + "properties": { + "CategoryFilter": { + "$ref": "#/definitions/CategoryFilter" + }, + "NumericEqualityFilter": { + "$ref": "#/definitions/NumericEqualityFilter" + }, + "NumericRangeFilter": { + "$ref": "#/definitions/NumericRangeFilter" + }, + "RelativeDatesFilter": { + "$ref": "#/definitions/RelativeDatesFilter" + }, + "TimeEqualityFilter": { + "$ref": "#/definitions/TimeEqualityFilter" + }, + "TimeRangeFilter": { + "$ref": "#/definitions/TimeRangeFilter" + }, + "TopBottomFilter": { + "$ref": "#/definitions/TopBottomFilter" + } + }, + "type": "object" + }, + "FilterControl": { + "additionalProperties": false, + "properties": { + "DateTimePicker": { + "$ref": "#/definitions/FilterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/FilterDropDownControl" + }, + "List": { + "$ref": "#/definitions/FilterListControl" + }, + "RelativeDateTime": { + "$ref": "#/definitions/FilterRelativeDateTimeControl" + }, + "Slider": { + "$ref": "#/definitions/FilterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/FilterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/FilterTextFieldControl" + } + }, + "type": "object" + }, + "FilterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlDateTimePickerType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterGroup": { + "additionalProperties": false, + "properties": { + "CrossDataset": { + "$ref": "#/definitions/CrossDatasetTypes" + }, + "FilterGroupId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/Filter" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "ScopeConfiguration": { + "$ref": "#/definitions/FilterScopeConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "required": [ + "CrossDataset", + "FilterGroupId", + "Filters", + "ScopeConfiguration" + ], + "type": "object" + }, + "FilterListConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryValues": { + "items": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "maxItems": 100000, + "minItems": 0, + "type": "array" + }, + "MatchOperator": { + "$ref": "#/definitions/CategoryFilterMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "SelectAllOptions": { + "$ref": "#/definitions/CategoryFilterSelectAllOptions" + } + }, + "required": [ + "MatchOperator" + ], + "type": "object" + }, + "FilterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/FilterSelectableValues" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterNullOption": { + "enum": [ + "ALL_VALUES", + "NULLS_ONLY", + "NON_NULLS_ONLY" + ], + "type": "string" + }, + "FilterOperationSelectedFieldsConfiguration": { + "additionalProperties": false, + "properties": { + "SelectedColumns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "$ref": "#/definitions/SelectedFieldOptions" + }, + "SelectedFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "FilterOperationTargetVisualsConfiguration": { + "additionalProperties": false, + "properties": { + "SameSheetTargetVisualConfiguration": { + "$ref": "#/definitions/SameSheetTargetVisualConfiguration" + } + }, + "type": "object" + }, + "FilterRelativeDateTimeControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/RelativeDateTimeControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "AllSheets": { + "$ref": "#/definitions/AllSheetsFilterScopeConfiguration" + }, + "SelectedSheets": { + "$ref": "#/definitions/SelectedSheetsFilterScopeConfiguration" + } + }, + "type": "object" + }, + "FilterSelectableValues": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FilterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlSliderType" + } + }, + "required": [ + "FilterControlId", + "MaximumValue", + "MinimumValue", + "SourceFilterId", + "StepSize", + "Title" + ], + "type": "object" + }, + "FilterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "FilterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceFilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "FilterControlId", + "SourceFilterId", + "Title" + ], + "type": "object" + }, + "FilterVisualScope": { + "enum": [ + "ALL_VISUALS", + "SELECTED_VISUALS" + ], + "type": "string" + }, + "FontConfiguration": { + "additionalProperties": false, + "properties": { + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontDecoration": { + "$ref": "#/definitions/FontDecoration" + }, + "FontSize": { + "$ref": "#/definitions/FontSize" + }, + "FontStyle": { + "$ref": "#/definitions/FontStyle" + }, + "FontWeight": { + "$ref": "#/definitions/FontWeight" + } + }, + "type": "object" + }, + "FontDecoration": { + "enum": [ + "UNDERLINE", + "NONE" + ], + "type": "string" + }, + "FontSize": { + "additionalProperties": false, + "properties": { + "Relative": { + "$ref": "#/definitions/RelativeFontSize" + } + }, + "type": "object" + }, + "FontStyle": { + "enum": [ + "NORMAL", + "ITALIC" + ], + "type": "string" + }, + "FontWeight": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/FontWeightName" + } + }, + "type": "object" + }, + "FontWeightName": { + "enum": [ + "NORMAL", + "BOLD" + ], + "type": "string" + }, + "ForecastComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "CustomSeasonalityValue": { + "default": null, + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "LowerBoundary": { + "default": null, + "type": "number" + }, + "Name": { + "type": "string" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "$ref": "#/definitions/ForecastComputationSeasonality" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "UpperBoundary": { + "default": null, + "type": "number" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ForecastComputationSeasonality": { + "enum": [ + "AUTOMATIC", + "CUSTOM" + ], + "type": "string" + }, + "ForecastConfiguration": { + "additionalProperties": false, + "properties": { + "ForecastProperties": { + "$ref": "#/definitions/TimeBasedForecastProperties" + }, + "Scenario": { + "$ref": "#/definitions/ForecastScenario" + } + }, + "type": "object" + }, + "ForecastScenario": { + "additionalProperties": false, + "properties": { + "WhatIfPointScenario": { + "$ref": "#/definitions/WhatIfPointScenario" + }, + "WhatIfRangeScenario": { + "$ref": "#/definitions/WhatIfRangeScenario" + } + }, + "type": "object" + }, + "FormatConfiguration": { + "additionalProperties": false, + "properties": { + "DateTimeFormatConfiguration": { + "$ref": "#/definitions/DateTimeFormatConfiguration" + }, + "NumberFormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "StringFormatConfiguration": { + "$ref": "#/definitions/StringFormatConfiguration" + } + }, + "type": "object" + }, + "FreeFormLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "FreeFormLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/FreeFormLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FreeFormLayoutElement": { + "additionalProperties": false, + "properties": { + "BackgroundStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBackgroundStyle" + }, + "BorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "LoadingAnimation": { + "$ref": "#/definitions/LoadingAnimation" + }, + "RenderingRules": { + "items": { + "$ref": "#/definitions/SheetElementRenderingRule" + }, + "maxItems": 10000, + "minItems": 0, + "type": "array" + }, + "SelectedBorderStyle": { + "$ref": "#/definitions/FreeFormLayoutElementBorderStyle" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "XAxisLocation": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "YAxisLocation": { + "description": "String based length that is composed of value and unit in px with Integer.MAX_VALUE as maximum value", + "type": "string" + } + }, + "required": [ + "ElementId", + "ElementType", + "Height", + "Width", + "XAxisLocation", + "YAxisLocation" + ], + "type": "object" + }, + "FreeFormLayoutElementBackgroundStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutElementBorderStyle": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FreeFormLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "required": [ + "OptimizedViewPortWidth" + ], + "type": "object" + }, + "FreeFormSectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "Elements": { + "items": { + "$ref": "#/definitions/FreeFormLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "FunnelChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabelOptions": { + "$ref": "#/definitions/FunnelChartDataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/FunnelChartFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/FunnelChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "FunnelChartDataLabelOptions": { + "additionalProperties": false, + "properties": { + "CategoryLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LabelColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "LabelFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "MeasureDataLabelStyle": { + "$ref": "#/definitions/FunnelChartMeasureDataLabelStyle" + }, + "MeasureLabelVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Position": { + "$ref": "#/definitions/DataLabelPosition" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "FunnelChartFieldWells": { + "additionalProperties": false, + "properties": { + "FunnelChartAggregatedFieldWells": { + "$ref": "#/definitions/FunnelChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "FunnelChartMeasureDataLabelStyle": { + "enum": [ + "VALUE_ONLY", + "PERCENTAGE_BY_FIRST_STAGE", + "PERCENTAGE_BY_PREVIOUS_STAGE", + "VALUE_AND_PERCENTAGE_BY_FIRST_STAGE", + "VALUE_AND_PERCENTAGE_BY_PREVIOUS_STAGE" + ], + "type": "string" + }, + "FunnelChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "FunnelChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/FunnelChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GaugeChartArcConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/GaugeChartConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/GaugeChartArcConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/GaugeChartPrimaryValueConditionalFormatting" + } + }, + "type": "object" + }, + "GaugeChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/GaugeChartFieldWells" + }, + "GaugeChartOptions": { + "$ref": "#/definitions/GaugeChartOptions" + }, + "TooltipOptions": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "GaugeChartFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GaugeChartOptions": { + "additionalProperties": false, + "properties": { + "Arc": { + "$ref": "#/definitions/ArcConfiguration" + }, + "ArcAxis": { + "$ref": "#/definitions/ArcAxisConfiguration" + }, + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + } + }, + "type": "object" + }, + "GaugeChartPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "GaugeChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GaugeChartConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/GaugeChartConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialCoordinateBounds": { + "additionalProperties": false, + "properties": { + "East": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + }, + "North": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "South": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "West": { + "maximum": 1800, + "minimum": -1800, + "type": "number" + } + }, + "required": [ + "East", + "North", + "South", + "West" + ], + "type": "object" + }, + "GeospatialHeatmapColorScale": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/GeospatialHeatmapDataColor" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialHeatmapConfiguration": { + "additionalProperties": false, + "properties": { + "HeatmapColor": { + "$ref": "#/definitions/GeospatialHeatmapColorScale" + } + }, + "type": "object" + }, + "GeospatialHeatmapDataColor": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "required": [ + "Color" + ], + "type": "object" + }, + "GeospatialMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Geospatial": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GeospatialMapConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/GeospatialMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "MapStyleOptions": { + "$ref": "#/definitions/GeospatialMapStyleOptions" + }, + "PointStyleOptions": { + "$ref": "#/definitions/GeospatialPointStyleOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WindowOptions": { + "$ref": "#/definitions/GeospatialWindowOptions" + } + }, + "type": "object" + }, + "GeospatialMapFieldWells": { + "additionalProperties": false, + "properties": { + "GeospatialMapAggregatedFieldWells": { + "$ref": "#/definitions/GeospatialMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "GeospatialMapStyleOptions": { + "additionalProperties": false, + "properties": { + "BaseMapStyle": { + "$ref": "#/definitions/BaseMapStyleType" + } + }, + "type": "object" + }, + "GeospatialMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/GeospatialMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "GeospatialPointStyleOptions": { + "additionalProperties": false, + "properties": { + "ClusterMarkerConfiguration": { + "$ref": "#/definitions/ClusterMarkerConfiguration" + }, + "HeatmapConfiguration": { + "$ref": "#/definitions/GeospatialHeatmapConfiguration" + }, + "SelectedPointStyle": { + "$ref": "#/definitions/GeospatialSelectedPointStyle" + } + }, + "type": "object" + }, + "GeospatialSelectedPointStyle": { + "enum": [ + "POINT", + "CLUSTER", + "HEATMAP" + ], + "type": "string" + }, + "GeospatialWindowOptions": { + "additionalProperties": false, + "properties": { + "Bounds": { + "$ref": "#/definitions/GeospatialCoordinateBounds" + }, + "MapZoomMode": { + "$ref": "#/definitions/MapZoomMode" + } + }, + "type": "object" + }, + "GlobalTableBorderOptions": { + "additionalProperties": false, + "properties": { + "SideSpecificBorder": { + "$ref": "#/definitions/TableSideBorderOptions" + }, + "UniformBorder": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "GradientColor": { + "additionalProperties": false, + "properties": { + "Stops": { + "items": { + "$ref": "#/definitions/GradientStop" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "GradientStop": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DataValue": { + "default": null, + "type": "number" + }, + "GradientOffset": { + "default": 0, + "type": "number" + } + }, + "required": [ + "GradientOffset" + ], + "type": "object" + }, + "GridLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "ScreenCanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutScreenCanvasSizeOptions" + } + }, + "type": "object" + }, + "GridLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "CanvasSizeOptions": { + "$ref": "#/definitions/GridLayoutCanvasSizeOptions" + }, + "Elements": { + "items": { + "$ref": "#/definitions/GridLayoutElement" + }, + "maxItems": 430, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Elements" + ], + "type": "object" + }, + "GridLayoutElement": { + "additionalProperties": false, + "properties": { + "ColumnIndex": { + "maximum": 35, + "minimum": 0, + "type": "number" + }, + "ColumnSpan": { + "maximum": 36, + "minimum": 1, + "type": "number" + }, + "ElementId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ElementType": { + "$ref": "#/definitions/LayoutElementType" + }, + "RowIndex": { + "maximum": 9009, + "minimum": 0, + "type": "number" + }, + "RowSpan": { + "maximum": 21, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "ColumnSpan", + "ElementId", + "ElementType", + "RowSpan" + ], + "type": "object" + }, + "GridLayoutScreenCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "OptimizedViewPortWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "ResizeOption": { + "$ref": "#/definitions/ResizeOption" + } + }, + "required": [ + "ResizeOption" + ], + "type": "object" + }, + "GrowthRateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodSize": { + "default": 0, + "maximum": 52, + "minimum": 2, + "type": "number" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "HeaderFooterSectionConfiguration": { + "additionalProperties": false, + "properties": { + "Layout": { + "$ref": "#/definitions/SectionLayoutConfiguration" + }, + "SectionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/SectionStyle" + } + }, + "required": [ + "Layout", + "SectionId" + ], + "type": "object" + }, + "HeatMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "ColumnLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HeatMapFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "RowLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/HeatMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "HeatMapFieldWells": { + "additionalProperties": false, + "properties": { + "HeatMapAggregatedFieldWells": { + "$ref": "#/definitions/HeatMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "HeatMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "HeatMapColumnItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapColumnSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "HeatMapRowItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "HeatMapRowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeatMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HeatMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HistogramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HistogramBinOptions": { + "additionalProperties": false, + "properties": { + "BinCount": { + "$ref": "#/definitions/BinCountOptions" + }, + "BinWidth": { + "$ref": "#/definitions/BinWidthOptions" + }, + "SelectedBinType": { + "$ref": "#/definitions/HistogramBinType" + }, + "StartValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "HistogramBinType": { + "enum": [ + "BIN_COUNT", + "BIN_WIDTH" + ], + "type": "string" + }, + "HistogramConfiguration": { + "additionalProperties": false, + "properties": { + "BinOptions": { + "$ref": "#/definitions/HistogramBinOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/HistogramFieldWells" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + } + }, + "type": "object" + }, + "HistogramFieldWells": { + "additionalProperties": false, + "properties": { + "HistogramAggregatedFieldWells": { + "$ref": "#/definitions/HistogramAggregatedFieldWells" + } + }, + "type": "object" + }, + "HistogramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/HistogramConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "HorizontalTextAlignment": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT", + "AUTO" + ], + "type": "string" + }, + "Icon": { + "enum": [ + "CARET_UP", + "CARET_DOWN", + "PLUS", + "MINUS", + "ARROW_UP", + "ARROW_DOWN", + "ARROW_LEFT", + "ARROW_UP_LEFT", + "ARROW_DOWN_LEFT", + "ARROW_RIGHT", + "ARROW_UP_RIGHT", + "ARROW_DOWN_RIGHT", + "FACE_UP", + "FACE_DOWN", + "FACE_FLAT", + "ONE_BAR", + "TWO_BAR", + "THREE_BAR", + "CIRCLE", + "TRIANGLE", + "SQUARE", + "FLAG", + "THUMBS_UP", + "THUMBS_DOWN", + "CHECKMARK", + "X" + ], + "type": "string" + }, + "InsightConfiguration": { + "additionalProperties": false, + "properties": { + "Computations": { + "items": { + "$ref": "#/definitions/Computation" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "CustomNarrative": { + "$ref": "#/definitions/CustomNarrativeOptions" + } + }, + "type": "object" + }, + "InsightVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "InsightConfiguration": { + "$ref": "#/definitions/InsightConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "VisualId" + ], + "type": "object" + }, + "IntegerDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "number" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "IntegerParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/IntegerDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/IntegerValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "IntegerValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "default": null, + "type": "number" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "ItemsLimitConfiguration": { + "additionalProperties": false, + "properties": { + "ItemsLimit": { + "default": null, + "type": "number" + }, + "OtherCategories": { + "$ref": "#/definitions/OtherCategories" + } + }, + "type": "object" + }, + "KPIActualValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIComparisonValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/KPIConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "ActualValue": { + "$ref": "#/definitions/KPIActualValueConditionalFormatting" + }, + "ComparisonValue": { + "$ref": "#/definitions/KPIComparisonValueConditionalFormatting" + }, + "PrimaryValue": { + "$ref": "#/definitions/KPIPrimaryValueConditionalFormatting" + }, + "ProgressBar": { + "$ref": "#/definitions/KPIProgressBarConditionalFormatting" + } + }, + "type": "object" + }, + "KPIConfiguration": { + "additionalProperties": false, + "properties": { + "FieldWells": { + "$ref": "#/definitions/KPIFieldWells" + }, + "KPIOptions": { + "$ref": "#/definitions/KPIOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/KPISortConfiguration" + } + }, + "type": "object" + }, + "KPIFieldWells": { + "additionalProperties": false, + "properties": { + "TargetValues": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TrendGroups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPIOptions": { + "additionalProperties": false, + "properties": { + "Comparison": { + "$ref": "#/definitions/ComparisonConfiguration" + }, + "PrimaryValueDisplayType": { + "$ref": "#/definitions/PrimaryValueDisplayType" + }, + "PrimaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "ProgressBar": { + "$ref": "#/definitions/ProgressBarOptions" + }, + "SecondaryValue": { + "$ref": "#/definitions/SecondaryValueOptions" + }, + "SecondaryValueFontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Sparkline": { + "$ref": "#/definitions/KPISparklineOptions" + }, + "TrendArrows": { + "$ref": "#/definitions/TrendArrowOptions" + }, + "VisualLayoutOptions": { + "$ref": "#/definitions/KPIVisualLayoutOptions" + } + }, + "type": "object" + }, + "KPIPrimaryValueConditionalFormatting": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPIProgressBarConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ForegroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "KPISortConfiguration": { + "additionalProperties": false, + "properties": { + "TrendGroupSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "KPISparklineOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Type": { + "$ref": "#/definitions/KPISparklineType" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPISparklineType": { + "enum": [ + "LINE", + "AREA" + ], + "type": "string" + }, + "KPIVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/KPIConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/KPIConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "KPIVisualLayoutOptions": { + "additionalProperties": false, + "properties": { + "StandardLayout": { + "$ref": "#/definitions/KPIVisualStandardLayout" + } + }, + "type": "object" + }, + "KPIVisualStandardLayout": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/KPIVisualStandardLayoutType" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "KPIVisualStandardLayoutType": { + "enum": [ + "CLASSIC", + "VERTICAL" + ], + "type": "string" + }, + "LabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "Layout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/LayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "LayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormLayoutConfiguration" + }, + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + }, + "SectionBasedLayout": { + "$ref": "#/definitions/SectionBasedLayoutConfiguration" + } + }, + "type": "object" + }, + "LayoutElementType": { + "enum": [ + "VISUAL", + "FILTER_CONTROL", + "PARAMETER_CONTROL", + "TEXT_BOX" + ], + "type": "string" + }, + "LegendOptions": { + "additionalProperties": false, + "properties": { + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "Position": { + "$ref": "#/definitions/LegendPosition" + }, + "Title": { + "$ref": "#/definitions/LabelOptions" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "type": "object" + }, + "LegendPosition": { + "enum": [ + "AUTO", + "RIGHT", + "BOTTOM", + "TOP" + ], + "type": "string" + }, + "LineChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Colors": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartConfiguration": { + "additionalProperties": false, + "properties": { + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DefaultSeriesSettings": { + "$ref": "#/definitions/LineChartDefaultSeriesSettings" + }, + "FieldWells": { + "$ref": "#/definitions/LineChartFieldWells" + }, + "ForecastConfigurations": { + "items": { + "$ref": "#/definitions/ForecastConfiguration" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ReferenceLines": { + "items": { + "$ref": "#/definitions/ReferenceLine" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SecondaryYAxisDisplayOptions": { + "$ref": "#/definitions/LineSeriesAxisDisplayOptions" + }, + "SecondaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Series": { + "items": { + "$ref": "#/definitions/SeriesItem" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/LineChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "Type": { + "$ref": "#/definitions/LineChartType" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "LineChartDefaultSeriesSettings": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartFieldWells": { + "additionalProperties": false, + "properties": { + "LineChartAggregatedFieldWells": { + "$ref": "#/definitions/LineChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "LineChartLineStyle": { + "enum": [ + "SOLID", + "DOTTED", + "DASHED" + ], + "type": "string" + }, + "LineChartLineStyleSettings": { + "additionalProperties": false, + "properties": { + "LineInterpolation": { + "$ref": "#/definitions/LineInterpolation" + }, + "LineStyle": { + "$ref": "#/definitions/LineChartLineStyle" + }, + "LineVisibility": { + "$ref": "#/definitions/Visibility" + }, + "LineWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "type": "object" + }, + "LineChartMarkerShape": { + "enum": [ + "CIRCLE", + "TRIANGLE", + "SQUARE", + "DIAMOND", + "ROUNDED_SQUARE" + ], + "type": "string" + }, + "LineChartMarkerStyleSettings": { + "additionalProperties": false, + "properties": { + "MarkerColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "MarkerShape": { + "$ref": "#/definitions/LineChartMarkerShape" + }, + "MarkerSize": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "MarkerVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LineChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "LineStyleSettings": { + "$ref": "#/definitions/LineChartLineStyleSettings" + }, + "MarkerStyleSettings": { + "$ref": "#/definitions/LineChartMarkerStyleSettings" + } + }, + "type": "object" + }, + "LineChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "LineChartType": { + "enum": [ + "LINE", + "AREA", + "STACKED_AREA" + ], + "type": "string" + }, + "LineChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/LineChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "LineInterpolation": { + "enum": [ + "LINEAR", + "SMOOTH", + "STEPPED" + ], + "type": "string" + }, + "LineSeriesAxisDisplayOptions": { + "additionalProperties": false, + "properties": { + "AxisOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "MissingDataConfigurations": { + "items": { + "$ref": "#/definitions/MissingDataConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ListControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "SearchOptions": { + "$ref": "#/definitions/ListControlSearchOptions" + }, + "SelectAllOptions": { + "$ref": "#/definitions/ListControlSelectAllOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "ListControlSearchOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ListControlSelectAllOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LoadingAnimation": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "LocalNavigationConfiguration": { + "additionalProperties": false, + "properties": { + "TargetSheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "TargetSheetId" + ], + "type": "object" + }, + "LongFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "MapZoomMode": { + "enum": [ + "AUTO", + "MANUAL" + ], + "type": "string" + }, + "MappedDataSetParameter": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DataSetParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "DataSetIdentifier", + "DataSetParameterName" + ], + "type": "object" + }, + "MaximumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MaximumMinimumComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/MaximumMinimumComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "MaximumMinimumComputationType": { + "enum": [ + "MAXIMUM", + "MINIMUM" + ], + "type": "string" + }, + "MeasureField": { + "additionalProperties": false, + "properties": { + "CalculatedMeasureField": { + "$ref": "#/definitions/CalculatedMeasureField" + }, + "CategoricalMeasureField": { + "$ref": "#/definitions/CategoricalMeasureField" + }, + "DateMeasureField": { + "$ref": "#/definitions/DateMeasureField" + }, + "NumericalMeasureField": { + "$ref": "#/definitions/NumericalMeasureField" + } + }, + "type": "object" + }, + "MetricComparisonComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "FromValue": { + "$ref": "#/definitions/MeasureField" + }, + "Name": { + "type": "string" + }, + "TargetValue": { + "$ref": "#/definitions/MeasureField" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "MinimumLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "MissingDataConfiguration": { + "additionalProperties": false, + "properties": { + "TreatmentOption": { + "$ref": "#/definitions/MissingDataTreatmentOption" + } + }, + "type": "object" + }, + "MissingDataTreatmentOption": { + "enum": [ + "INTERPOLATE", + "SHOW_AS_ZERO", + "SHOW_AS_BLANK" + ], + "type": "string" + }, + "NegativeValueConfiguration": { + "additionalProperties": false, + "properties": { + "DisplayMode": { + "$ref": "#/definitions/NegativeValueDisplayMode" + } + }, + "required": [ + "DisplayMode" + ], + "type": "object" + }, + "NegativeValueDisplayMode": { + "enum": [ + "POSITIVE", + "NEGATIVE" + ], + "type": "string" + }, + "NullValueFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullString": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "NullString" + ], + "type": "object" + }, + "NumberDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumberScale": { + "$ref": "#/definitions/NumberScale" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "NumberFormatConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "NumberScale": { + "enum": [ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ], + "type": "string" + }, + "NumericAxisOptions": { + "additionalProperties": false, + "properties": { + "Range": { + "$ref": "#/definitions/AxisDisplayRange" + }, + "Scale": { + "$ref": "#/definitions/AxisScale" + } + }, + "type": "object" + }, + "NumericEqualityDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Column", + "Value" + ], + "type": "object" + }, + "NumericEqualityFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MatchOperator": { + "$ref": "#/definitions/NumericEqualityMatchOperator" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + }, + "Value": { + "default": null, + "type": "number" + } + }, + "required": [ + "Column", + "FilterId", + "MatchOperator", + "NullOption" + ], + "type": "object" + }, + "NumericEqualityMatchOperator": { + "enum": [ + "EQUALS", + "DOES_NOT_EQUAL" + ], + "type": "string" + }, + "NumericFilterSelectAllOptions": { + "enum": [ + "FILTER_ALL_VALUES" + ], + "type": "string" + }, + "NumericFormatConfiguration": { + "additionalProperties": false, + "properties": { + "CurrencyDisplayFormatConfiguration": { + "$ref": "#/definitions/CurrencyDisplayFormatConfiguration" + }, + "NumberDisplayFormatConfiguration": { + "$ref": "#/definitions/NumberDisplayFormatConfiguration" + }, + "PercentageDisplayFormatConfiguration": { + "$ref": "#/definitions/PercentageDisplayFormatConfiguration" + } + }, + "type": "object" + }, + "NumericRangeFilter": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "RangeMinimum": { + "$ref": "#/definitions/NumericRangeFilterValue" + }, + "SelectAllOptions": { + "$ref": "#/definitions/NumericFilterSelectAllOptions" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "NumericRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StaticValue": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "NumericSeparatorConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalSeparator": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "ThousandsSeparator": { + "$ref": "#/definitions/ThousandSeparatorOptions" + } + }, + "type": "object" + }, + "NumericSeparatorSymbol": { + "enum": [ + "COMMA", + "DOT", + "SPACE" + ], + "type": "string" + }, + "NumericalAggregationFunction": { + "additionalProperties": false, + "properties": { + "PercentileAggregation": { + "$ref": "#/definitions/PercentileAggregation" + }, + "SimpleNumericalAggregation": { + "$ref": "#/definitions/SimpleNumericalAggregationFunction" + } + }, + "type": "object" + }, + "NumericalDimensionField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "NumericalMeasureField": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/NumberFormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "OtherCategories": { + "enum": [ + "INCLUDE", + "EXCLUDE" + ], + "type": "string" + }, + "PaginationConfiguration": { + "additionalProperties": false, + "properties": { + "PageNumber": { + "minimum": 0, + "type": "number" + }, + "PageSize": { + "default": null, + "type": "number" + } + }, + "required": [ + "PageNumber", + "PageSize" + ], + "type": "object" + }, + "PanelBorderStyle": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "PanelConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BackgroundVisibility": { + "$ref": "#/definitions/Visibility" + }, + "BorderColor": { + "pattern": "^#[A-F0-9]{6}(?:[A-F0-9]{2})?$", + "type": "string" + }, + "BorderStyle": { + "$ref": "#/definitions/PanelBorderStyle" + }, + "BorderThickness": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "BorderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "GutterSpacing": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "GutterVisibility": { + "$ref": "#/definitions/Visibility" + }, + "Title": { + "$ref": "#/definitions/PanelTitleOptions" + } + }, + "type": "object" + }, + "PanelTitleOptions": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PaperOrientation": { + "enum": [ + "PORTRAIT", + "LANDSCAPE" + ], + "type": "string" + }, + "PaperSize": { + "enum": [ + "US_LETTER", + "US_LEGAL", + "US_TABLOID_LEDGER", + "A0", + "A1", + "A2", + "A3", + "A4", + "A5", + "JIS_B4", + "JIS_B5" + ], + "type": "string" + }, + "ParameterControl": { + "additionalProperties": false, + "properties": { + "DateTimePicker": { + "$ref": "#/definitions/ParameterDateTimePickerControl" + }, + "Dropdown": { + "$ref": "#/definitions/ParameterDropDownControl" + }, + "List": { + "$ref": "#/definitions/ParameterListControl" + }, + "Slider": { + "$ref": "#/definitions/ParameterSliderControl" + }, + "TextArea": { + "$ref": "#/definitions/ParameterTextAreaControl" + }, + "TextField": { + "$ref": "#/definitions/ParameterTextFieldControl" + } + }, + "type": "object" + }, + "ParameterDateTimePickerControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/DateTimePickerControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DateTimeParameterDeclaration": { + "$ref": "#/definitions/DateTimeParameterDeclaration" + }, + "DecimalParameterDeclaration": { + "$ref": "#/definitions/DecimalParameterDeclaration" + }, + "IntegerParameterDeclaration": { + "$ref": "#/definitions/IntegerParameterDeclaration" + }, + "StringParameterDeclaration": { + "$ref": "#/definitions/StringParameterDeclaration" + } + }, + "type": "object" + }, + "ParameterDropDownControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/DropDownControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterListControl": { + "additionalProperties": false, + "properties": { + "CascadingControlConfiguration": { + "$ref": "#/definitions/CascadingControlConfiguration" + }, + "DisplayOptions": { + "$ref": "#/definitions/ListControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SelectableValues": { + "$ref": "#/definitions/ParameterSelectableValues" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/SheetControlListType" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterSelectableValues": { + "additionalProperties": false, + "properties": { + "LinkToDataSetColumn": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "Values": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ParameterSliderControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/SliderControlDisplayOptions" + }, + "MaximumValue": { + "default": 0, + "type": "number" + }, + "MinimumValue": { + "default": 0, + "type": "number" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "StepSize": { + "default": 0, + "type": "number" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "MaximumValue", + "MinimumValue", + "ParameterControlId", + "SourceParameterName", + "StepSize", + "Title" + ], + "type": "object" + }, + "ParameterTextAreaControl": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "DisplayOptions": { + "$ref": "#/definitions/TextAreaControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterTextFieldControl": { + "additionalProperties": false, + "properties": { + "DisplayOptions": { + "$ref": "#/definitions/TextFieldControlDisplayOptions" + }, + "ParameterControlId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "SourceParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Title": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ParameterControlId", + "SourceParameterName", + "Title" + ], + "type": "object" + }, + "ParameterValueType": { + "enum": [ + "MULTI_VALUED", + "SINGLE_VALUED" + ], + "type": "string" + }, + "PercentVisibleRange": { + "additionalProperties": false, + "properties": { + "From": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + }, + "To": { + "default": null, + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PercentageDisplayFormatConfiguration": { + "additionalProperties": false, + "properties": { + "DecimalPlacesConfiguration": { + "$ref": "#/definitions/DecimalPlacesConfiguration" + }, + "NegativeValueConfiguration": { + "$ref": "#/definitions/NegativeValueConfiguration" + }, + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "Prefix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SeparatorConfiguration": { + "$ref": "#/definitions/NumericSeparatorConfiguration" + }, + "Suffix": { + "maxLength": 128, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PercentileAggregation": { + "additionalProperties": false, + "properties": { + "PercentileValue": { + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PeriodOverPeriodComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PeriodToDateComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "PeriodTimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "PieChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SmallMultiples": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ContributionAnalysisDefaults": { + "items": { + "$ref": "#/definitions/ContributionAnalysisDefault" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "DonutOptions": { + "$ref": "#/definitions/DonutOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PieChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SmallMultiplesOptions": { + "$ref": "#/definitions/SmallMultiplesOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PieChartSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "ValueLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "PieChartFieldWells": { + "additionalProperties": false, + "properties": { + "PieChartAggregatedFieldWells": { + "$ref": "#/definitions/PieChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "PieChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SmallMultiplesLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SmallMultiplesSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PieChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PieChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotFieldSortOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "SortBy": { + "$ref": "#/definitions/PivotTableSortBy" + } + }, + "required": [ + "FieldId", + "SortBy" + ], + "type": "object" + }, + "PivotTableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Rows": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 40, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "Scopes": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingScope" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/PivotTableConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/PivotTableCellConditionalFormatting" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScope": { + "additionalProperties": false, + "properties": { + "Role": { + "$ref": "#/definitions/PivotTableConditionalFormattingScopeRole" + } + }, + "type": "object" + }, + "PivotTableConditionalFormattingScopeRole": { + "enum": [ + "FIELD", + "FIELD_TOTAL", + "GRAND_TOTAL" + ], + "type": "string" + }, + "PivotTableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/PivotTableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/PivotTableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/PivotTablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/PivotTableSortConfiguration" + }, + "TableOptions": { + "$ref": "#/definitions/PivotTableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/PivotTableTotalOptions" + } + }, + "type": "object" + }, + "PivotTableDataPathOption": { + "additionalProperties": false, + "properties": { + "DataPathList": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "required": [ + "DataPathList" + ], + "type": "object" + }, + "PivotTableDataPathType": { + "enum": [ + "HIERARCHY_ROWS_LAYOUT_COLUMN", + "MULTIPLE_ROW_METRICS_COLUMN", + "EMPTY_COLUMN_HEADER", + "COUNT_METRIC_COLUMN" + ], + "type": "string" + }, + "PivotTableFieldCollapseState": { + "enum": [ + "COLLAPSED", + "EXPANDED" + ], + "type": "string" + }, + "PivotTableFieldCollapseStateOption": { + "additionalProperties": false, + "properties": { + "State": { + "$ref": "#/definitions/PivotTableFieldCollapseState" + }, + "Target": { + "$ref": "#/definitions/PivotTableFieldCollapseStateTarget" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "PivotTableFieldCollapseStateTarget": { + "additionalProperties": false, + "properties": { + "FieldDataPathValues": { + "items": { + "$ref": "#/definitions/DataPathValue" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "FieldId": { + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "PivotTableFieldOptions": { + "additionalProperties": false, + "properties": { + "CollapseStateOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldCollapseStateOption" + }, + "type": "array" + }, + "DataPathOptions": { + "items": { + "$ref": "#/definitions/PivotTableDataPathOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableFieldSubtotalOptions": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "PivotTableFieldWells": { + "additionalProperties": false, + "properties": { + "PivotTableAggregatedFieldWells": { + "$ref": "#/definitions/PivotTableAggregatedFieldWells" + } + }, + "type": "object" + }, + "PivotTableMetricPlacement": { + "enum": [ + "ROW", + "COLUMN" + ], + "type": "string" + }, + "PivotTableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "CollapsedRowDimensionsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ColumnHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "ColumnNamesVisibility": { + "$ref": "#/definitions/Visibility" + }, + "DefaultCellWidth": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "MetricPlacement": { + "$ref": "#/definitions/PivotTableMetricPlacement" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + }, + "RowFieldNamesStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowHeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "RowsLabelOptions": { + "$ref": "#/definitions/PivotTableRowsLabelOptions" + }, + "RowsLayout": { + "$ref": "#/definitions/PivotTableRowsLayout" + }, + "SingleMetricVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ToggleButtonsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLabelOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "PivotTableRowsLayout": { + "enum": [ + "TABULAR", + "HIERARCHY" + ], + "type": "string" + }, + "PivotTableSortBy": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnSort" + }, + "DataPath": { + "$ref": "#/definitions/DataPathSort" + }, + "Field": { + "$ref": "#/definitions/FieldSort" + } + }, + "type": "object" + }, + "PivotTableSortConfiguration": { + "additionalProperties": false, + "properties": { + "FieldSortOptions": { + "items": { + "$ref": "#/definitions/PivotFieldSortOptions" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PivotTableSubtotalLevel": { + "enum": [ + "ALL", + "CUSTOM", + "LAST" + ], + "type": "string" + }, + "PivotTableTotalOptions": { + "additionalProperties": false, + "properties": { + "ColumnSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "ColumnTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + }, + "RowSubtotalOptions": { + "$ref": "#/definitions/SubtotalOptions" + }, + "RowTotalOptions": { + "$ref": "#/definitions/PivotTotalOptions" + } + }, + "type": "object" + }, + "PivotTableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/PivotTableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/PivotTableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "PivotTotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "PredefinedHierarchy": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "DrillDownFilters": { + "items": { + "$ref": "#/definitions/DrillDownFilter" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "HierarchyId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Columns", + "HierarchyId" + ], + "type": "object" + }, + "PrimaryValueDisplayType": { + "enum": [ + "HIDDEN", + "COMPARISON", + "ACTUAL" + ], + "type": "string" + }, + "ProgressBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Color": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartAreaStyleSettings": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "RadarChartAxesRangeScale": { + "enum": [ + "AUTO", + "INDEPENDENT", + "SHARED" + ], + "type": "string" + }, + "RadarChartConfiguration": { + "additionalProperties": false, + "properties": { + "AlternateBandColorsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "AlternateBandEvenColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AlternateBandOddColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AxesRangeScale": { + "$ref": "#/definitions/RadarChartAxesRangeScale" + }, + "BaseSeriesSettings": { + "$ref": "#/definitions/RadarChartSeriesSettings" + }, + "CategoryAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorAxis": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/RadarChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Shape": { + "$ref": "#/definitions/RadarChartShape" + }, + "SortConfiguration": { + "$ref": "#/definitions/RadarChartSortConfiguration" + }, + "StartAngle": { + "maximum": 360, + "minimum": -360, + "type": "number" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + } + }, + "type": "object" + }, + "RadarChartFieldWells": { + "additionalProperties": false, + "properties": { + "RadarChartAggregatedFieldWells": { + "$ref": "#/definitions/RadarChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "RadarChartSeriesSettings": { + "additionalProperties": false, + "properties": { + "AreaStyleSettings": { + "$ref": "#/definitions/RadarChartAreaStyleSettings" + } + }, + "type": "object" + }, + "RadarChartShape": { + "enum": [ + "CIRCLE", + "POLYGON" + ], + "type": "string" + }, + "RadarChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "ColorItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "ColorSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "RadarChartVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/RadarChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "RangeEndsLabelType": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "ReferenceLine": { + "additionalProperties": false, + "properties": { + "DataConfiguration": { + "$ref": "#/definitions/ReferenceLineDataConfiguration" + }, + "LabelConfiguration": { + "$ref": "#/definitions/ReferenceLineLabelConfiguration" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "StyleConfiguration": { + "$ref": "#/definitions/ReferenceLineStyleConfiguration" + } + }, + "required": [ + "DataConfiguration" + ], + "type": "object" + }, + "ReferenceLineCustomLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "CustomLabel" + ], + "type": "object" + }, + "ReferenceLineDataConfiguration": { + "additionalProperties": false, + "properties": { + "AxisBinding": { + "$ref": "#/definitions/AxisBinding" + }, + "DynamicConfiguration": { + "$ref": "#/definitions/ReferenceLineDynamicDataConfiguration" + }, + "SeriesType": { + "$ref": "#/definitions/ReferenceLineSeriesType" + }, + "StaticConfiguration": { + "$ref": "#/definitions/ReferenceLineStaticDataConfiguration" + } + }, + "type": "object" + }, + "ReferenceLineDynamicDataConfiguration": { + "additionalProperties": false, + "properties": { + "Calculation": { + "$ref": "#/definitions/NumericalAggregationFunction" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "MeasureAggregationFunction": { + "$ref": "#/definitions/AggregationFunction" + } + }, + "required": [ + "Calculation", + "Column" + ], + "type": "object" + }, + "ReferenceLineLabelConfiguration": { + "additionalProperties": false, + "properties": { + "CustomLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineCustomLabelConfiguration" + }, + "FontColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "HorizontalPosition": { + "$ref": "#/definitions/ReferenceLineLabelHorizontalPosition" + }, + "ValueLabelConfiguration": { + "$ref": "#/definitions/ReferenceLineValueLabelConfiguration" + }, + "VerticalPosition": { + "$ref": "#/definitions/ReferenceLineLabelVerticalPosition" + } + }, + "type": "object" + }, + "ReferenceLineLabelHorizontalPosition": { + "enum": [ + "LEFT", + "CENTER", + "RIGHT" + ], + "type": "string" + }, + "ReferenceLineLabelVerticalPosition": { + "enum": [ + "ABOVE", + "BELOW" + ], + "type": "string" + }, + "ReferenceLinePatternType": { + "enum": [ + "SOLID", + "DASHED", + "DOTTED" + ], + "type": "string" + }, + "ReferenceLineSeriesType": { + "enum": [ + "BAR", + "LINE" + ], + "type": "string" + }, + "ReferenceLineStaticDataConfiguration": { + "additionalProperties": false, + "properties": { + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "ReferenceLineStyleConfiguration": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Pattern": { + "$ref": "#/definitions/ReferenceLinePatternType" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelConfiguration": { + "additionalProperties": false, + "properties": { + "FormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + }, + "RelativePosition": { + "$ref": "#/definitions/ReferenceLineValueLabelRelativePosition" + } + }, + "type": "object" + }, + "ReferenceLineValueLabelRelativePosition": { + "enum": [ + "BEFORE_CUSTOM_LABEL", + "AFTER_CUSTOM_LABEL" + ], + "type": "string" + }, + "RelativeDateTimeControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "DateTimeFormat": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "RelativeDateType": { + "enum": [ + "PREVIOUS", + "THIS", + "LAST", + "NOW", + "NEXT" + ], + "type": "string" + }, + "RelativeDatesFilter": { + "additionalProperties": false, + "properties": { + "AnchorDateConfiguration": { + "$ref": "#/definitions/AnchorDateConfiguration" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MinimumGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RelativeDateType": { + "$ref": "#/definitions/RelativeDateType" + }, + "RelativeDateValue": { + "default": null, + "type": "number" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AnchorDateConfiguration", + "Column", + "FilterId", + "NullOption", + "RelativeDateType", + "TimeGranularity" + ], + "type": "object" + }, + "RelativeFontSize": { + "enum": [ + "EXTRA_SMALL", + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ], + "type": "string" + }, + "ResizeOption": { + "enum": [ + "FIXED", + "RESPONSIVE" + ], + "type": "string" + }, + "ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + }, + "Principal": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "ResourceStatus": { + "enum": [ + "CREATION_IN_PROGRESS", + "CREATION_SUCCESSFUL", + "CREATION_FAILED", + "UPDATE_IN_PROGRESS", + "UPDATE_SUCCESSFUL", + "UPDATE_FAILED", + "DELETED" + ], + "type": "string" + }, + "RollingDateConfiguration": { + "additionalProperties": false, + "properties": { + "DataSetIdentifier": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "RowAlternateColorOptions": { + "additionalProperties": false, + "properties": { + "RowAlternateColors": { + "items": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "UsePrimaryBackgroundColor": { + "$ref": "#/definitions/WidgetStatus" + } + }, + "type": "object" + }, + "SameSheetTargetVisualConfiguration": { + "additionalProperties": false, + "properties": { + "TargetVisualOptions": { + "$ref": "#/definitions/TargetVisualOptions" + }, + "TargetVisuals": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Destination": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Source": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Weight": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramChartConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/SankeyDiagramFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/SankeyDiagramSortConfiguration" + } + }, + "type": "object" + }, + "SankeyDiagramFieldWells": { + "additionalProperties": false, + "properties": { + "SankeyDiagramAggregatedFieldWells": { + "$ref": "#/definitions/SankeyDiagramAggregatedFieldWells" + } + }, + "type": "object" + }, + "SankeyDiagramSortConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "SourceItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "WeightSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SankeyDiagramVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/SankeyDiagramChartConfiguration" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScatterPlotCategoricallyAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotConfiguration": { + "additionalProperties": false, + "properties": { + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/ScatterPlotFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "XAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "XAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "YAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "YAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + } + }, + "type": "object" + }, + "ScatterPlotFieldWells": { + "additionalProperties": false, + "properties": { + "ScatterPlotCategoricallyAggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotCategoricallyAggregatedFieldWells" + }, + "ScatterPlotUnaggregatedFieldWells": { + "$ref": "#/definitions/ScatterPlotUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "ScatterPlotUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Category": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Label": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "XAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "YAxis": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "ScatterPlotVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/ScatterPlotConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "ScrollBarOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "VisibleRange": { + "$ref": "#/definitions/VisibleRangeOptions" + } + }, + "type": "object" + }, + "SecondaryValueOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SectionAfterPageBreak": { + "additionalProperties": false, + "properties": { + "Status": { + "$ref": "#/definitions/SectionPageBreakStatus" + } + }, + "type": "object" + }, + "SectionBasedLayoutCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperCanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutPaperCanvasSizeOptions" + } + }, + "type": "object" + }, + "SectionBasedLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "BodySections": { + "items": { + "$ref": "#/definitions/BodySectionConfiguration" + }, + "maxItems": 28, + "minItems": 0, + "type": "array" + }, + "CanvasSizeOptions": { + "$ref": "#/definitions/SectionBasedLayoutCanvasSizeOptions" + }, + "FooterSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "HeaderSections": { + "items": { + "$ref": "#/definitions/HeaderFooterSectionConfiguration" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "BodySections", + "CanvasSizeOptions", + "FooterSections", + "HeaderSections" + ], + "type": "object" + }, + "SectionBasedLayoutPaperCanvasSizeOptions": { + "additionalProperties": false, + "properties": { + "PaperMargin": { + "$ref": "#/definitions/Spacing" + }, + "PaperOrientation": { + "$ref": "#/definitions/PaperOrientation" + }, + "PaperSize": { + "$ref": "#/definitions/PaperSize" + } + }, + "type": "object" + }, + "SectionLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "FreeFormLayout": { + "$ref": "#/definitions/FreeFormSectionLayoutConfiguration" + } + }, + "required": [ + "FreeFormLayout" + ], + "type": "object" + }, + "SectionPageBreakConfiguration": { + "additionalProperties": false, + "properties": { + "After": { + "$ref": "#/definitions/SectionAfterPageBreak" + } + }, + "type": "object" + }, + "SectionPageBreakStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "SectionStyle": { + "additionalProperties": false, + "properties": { + "Height": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + }, + "Padding": { + "$ref": "#/definitions/Spacing" + } + }, + "type": "object" + }, + "SelectAllValueOptions": { + "enum": [ + "ALL_VALUES" + ], + "type": "string" + }, + "SelectedFieldOptions": { + "enum": [ + "ALL_FIELDS" + ], + "type": "string" + }, + "SelectedSheetsFilterScopeConfiguration": { + "additionalProperties": false, + "properties": { + "SheetVisualScopingConfigurations": { + "items": { + "$ref": "#/definitions/SheetVisualScopingConfiguration" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "SelectedTooltipType": { + "enum": [ + "BASIC", + "DETAILED" + ], + "type": "string" + }, + "SeriesItem": { + "additionalProperties": false, + "properties": { + "DataFieldSeriesItem": { + "$ref": "#/definitions/DataFieldSeriesItem" + }, + "FieldSeriesItem": { + "$ref": "#/definitions/FieldSeriesItem" + } + }, + "type": "object" + }, + "SetParameterValueConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/DestinationParameterValueConfiguration" + } + }, + "required": [ + "DestinationParameterName", + "Value" + ], + "type": "object" + }, + "ShapeConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "required": [ + "BackgroundColor" + ], + "type": "object" + }, + "Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "type": "object" + }, + "SheetContentType": { + "enum": [ + "PAGINATED", + "INTERACTIVE" + ], + "type": "string" + }, + "SheetControlDateTimePickerType": { + "enum": [ + "SINGLE_VALUED", + "DATE_RANGE" + ], + "type": "string" + }, + "SheetControlInfoIconLabelOptions": { + "additionalProperties": false, + "properties": { + "InfoIconText": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetControlLayout": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/SheetControlLayoutConfiguration" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "SheetControlLayoutConfiguration": { + "additionalProperties": false, + "properties": { + "GridLayout": { + "$ref": "#/definitions/GridLayoutConfiguration" + } + }, + "type": "object" + }, + "SheetControlListType": { + "enum": [ + "MULTI_SELECT", + "SINGLE_SELECT" + ], + "type": "string" + }, + "SheetControlSliderType": { + "enum": [ + "SINGLE_POINT", + "RANGE" + ], + "type": "string" + }, + "SheetDefinition": { + "additionalProperties": false, + "properties": { + "ContentType": { + "$ref": "#/definitions/SheetContentType" + }, + "Description": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "FilterControls": { + "items": { + "$ref": "#/definitions/FilterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Layouts": { + "items": { + "$ref": "#/definitions/Layout" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "ParameterControls": { + "items": { + "$ref": "#/definitions/ParameterControl" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "SheetControlLayouts": { + "items": { + "$ref": "#/definitions/SheetControlLayout" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "TextBoxes": { + "items": { + "$ref": "#/definitions/SheetTextBox" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Title": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Visuals": { + "items": { + "$ref": "#/definitions/Visual" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "SheetId" + ], + "type": "object" + }, + "SheetElementConfigurationOverrides": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "SheetElementRenderingRule": { + "additionalProperties": false, + "properties": { + "ConfigurationOverrides": { + "$ref": "#/definitions/SheetElementConfigurationOverrides" + }, + "Expression": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "ConfigurationOverrides", + "Expression" + ], + "type": "object" + }, + "SheetTextBox": { + "additionalProperties": false, + "properties": { + "Content": { + "maxLength": 150000, + "minLength": 0, + "type": "string" + }, + "SheetTextBoxId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "SheetTextBoxId" + ], + "type": "object" + }, + "SheetVisualScopingConfiguration": { + "additionalProperties": false, + "properties": { + "Scope": { + "$ref": "#/definitions/FilterVisualScope" + }, + "SheetId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "VisualIds": { + "items": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "maxItems": 50, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Scope", + "SheetId" + ], + "type": "object" + }, + "ShortFormatText": { + "additionalProperties": false, + "properties": { + "PlainText": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "RichText": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "SimpleAttributeAggregationFunction": { + "enum": [ + "UNIQUE_VALUE" + ], + "type": "string" + }, + "SimpleClusterMarker": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + }, + "SimpleNumericalAggregationFunction": { + "enum": [ + "SUM", + "AVERAGE", + "MIN", + "MAX", + "COUNT", + "DISTINCT_COUNT", + "VAR", + "VARP", + "STDEV", + "STDEVP", + "MEDIAN" + ], + "type": "string" + }, + "SimpleTotalAggregationFunction": { + "enum": [ + "DEFAULT", + "SUM", + "AVERAGE", + "MIN", + "MAX", + "NONE" + ], + "type": "string" + }, + "SliderControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "SmallMultiplesAxisPlacement": { + "enum": [ + "OUTSIDE", + "INSIDE" + ], + "type": "string" + }, + "SmallMultiplesAxisProperties": { + "additionalProperties": false, + "properties": { + "Placement": { + "$ref": "#/definitions/SmallMultiplesAxisPlacement" + }, + "Scale": { + "$ref": "#/definitions/SmallMultiplesAxisScale" + } + }, + "type": "object" + }, + "SmallMultiplesAxisScale": { + "enum": [ + "SHARED", + "INDEPENDENT" + ], + "type": "string" + }, + "SmallMultiplesOptions": { + "additionalProperties": false, + "properties": { + "MaxVisibleColumns": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "MaxVisibleRows": { + "maximum": 10, + "minimum": 1, + "type": "number" + }, + "PanelConfiguration": { + "$ref": "#/definitions/PanelConfiguration" + }, + "XAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + }, + "YAxis": { + "$ref": "#/definitions/SmallMultiplesAxisProperties" + } + }, + "type": "object" + }, + "SortDirection": { + "enum": [ + "ASC", + "DESC" + ], + "type": "string" + }, + "Spacing": { + "additionalProperties": false, + "properties": { + "Bottom": { + "description": "String based length that is composed of value and unit", + "type": "string" + }, + "Left": { + "description": "String based length that is composed of value and unit", + "type": "string" + }, + "Right": { + "description": "String based length that is composed of value and unit", + "type": "string" + }, + "Top": { + "description": "String based length that is composed of value and unit", + "type": "string" + } + }, + "type": "object" + }, + "SpecialValue": { + "enum": [ + "EMPTY", + "NULL", + "OTHER" + ], + "type": "string" + }, + "StringDefaultValues": { + "additionalProperties": false, + "properties": { + "DynamicValue": { + "$ref": "#/definitions/DynamicDefaultValue" + }, + "StaticValues": { + "items": { + "type": "string" + }, + "maxItems": 50000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "StringFormatConfiguration": { + "additionalProperties": false, + "properties": { + "NullValueFormatConfiguration": { + "$ref": "#/definitions/NullValueFormatConfiguration" + }, + "NumericFormatConfiguration": { + "$ref": "#/definitions/NumericFormatConfiguration" + } + }, + "type": "object" + }, + "StringParameterDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValues": { + "$ref": "#/definitions/StringDefaultValues" + }, + "MappedDataSetParameters": { + "items": { + "$ref": "#/definitions/MappedDataSetParameter" + }, + "maxItems": 150, + "minItems": 0, + "type": "array" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "ParameterValueType": { + "$ref": "#/definitions/ParameterValueType" + }, + "ValueWhenUnset": { + "$ref": "#/definitions/StringValueWhenUnsetConfiguration" + } + }, + "required": [ + "Name", + "ParameterValueType" + ], + "type": "object" + }, + "StringValueWhenUnsetConfiguration": { + "additionalProperties": false, + "properties": { + "CustomValue": { + "type": "string" + }, + "ValueWhenUnsetOption": { + "$ref": "#/definitions/ValueWhenUnsetOption" + } + }, + "type": "object" + }, + "StyledCellType": { + "enum": [ + "TOTAL", + "METRIC_HEADER", + "VALUE" + ], + "type": "string" + }, + "SubtotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "FieldLevel": { + "$ref": "#/definitions/PivotTableSubtotalLevel" + }, + "FieldLevelOptions": { + "items": { + "$ref": "#/definitions/PivotTableFieldSubtotalOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "MetricHeaderCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "StyleTargets": { + "items": { + "$ref": "#/definitions/TableStyleTarget" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + }, + "ValueCellStyle": { + "$ref": "#/definitions/TableCellStyle" + } + }, + "type": "object" + }, + "TableAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableBorderOptions": { + "additionalProperties": false, + "properties": { + "Color": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Style": { + "$ref": "#/definitions/TableBorderStyle" + }, + "Thickness": { + "maximum": 4, + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "TableBorderStyle": { + "enum": [ + "NONE", + "SOLID" + ], + "type": "string" + }, + "TableCellConditionalFormatting": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextFormat": { + "$ref": "#/definitions/TextConditionalFormat" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableCellImageScalingConfiguration": { + "enum": [ + "FIT_TO_CELL_HEIGHT", + "FIT_TO_CELL_WIDTH", + "DO_NOT_SCALE" + ], + "type": "string" + }, + "TableCellImageSizingConfiguration": { + "additionalProperties": false, + "properties": { + "TableCellImageScalingConfiguration": { + "$ref": "#/definitions/TableCellImageScalingConfiguration" + } + }, + "type": "object" + }, + "TableCellStyle": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Border": { + "$ref": "#/definitions/GlobalTableBorderOptions" + }, + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Height": { + "maximum": 500, + "minimum": 8, + "type": "number" + }, + "HorizontalTextAlignment": { + "$ref": "#/definitions/HorizontalTextAlignment" + }, + "TextWrap": { + "$ref": "#/definitions/TextWrap" + }, + "VerticalTextAlignment": { + "$ref": "#/definitions/VerticalTextAlignment" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TableConditionalFormatting": { + "additionalProperties": false, + "properties": { + "ConditionalFormattingOptions": { + "items": { + "$ref": "#/definitions/TableConditionalFormattingOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableConditionalFormattingOption": { + "additionalProperties": false, + "properties": { + "Cell": { + "$ref": "#/definitions/TableCellConditionalFormatting" + }, + "Row": { + "$ref": "#/definitions/TableRowConditionalFormatting" + } + }, + "type": "object" + }, + "TableConfiguration": { + "additionalProperties": false, + "properties": { + "FieldOptions": { + "$ref": "#/definitions/TableFieldOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TableFieldWells" + }, + "PaginatedReportOptions": { + "$ref": "#/definitions/TablePaginatedReportOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TableSortConfiguration" + }, + "TableInlineVisualizations": { + "items": { + "$ref": "#/definitions/TableInlineVisualization" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TableOptions": { + "$ref": "#/definitions/TableOptions" + }, + "TotalOptions": { + "$ref": "#/definitions/TotalOptions" + } + }, + "type": "object" + }, + "TableFieldCustomIconContent": { + "additionalProperties": false, + "properties": { + "Icon": { + "$ref": "#/definitions/TableFieldIconSetType" + } + }, + "type": "object" + }, + "TableFieldCustomTextContent": { + "additionalProperties": false, + "properties": { + "FontConfiguration": { + "$ref": "#/definitions/FontConfiguration" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "FontConfiguration" + ], + "type": "object" + }, + "TableFieldIconSetType": { + "enum": [ + "LINK" + ], + "type": "string" + }, + "TableFieldImageConfiguration": { + "additionalProperties": false, + "properties": { + "SizingOptions": { + "$ref": "#/definitions/TableCellImageSizingConfiguration" + } + }, + "type": "object" + }, + "TableFieldLinkConfiguration": { + "additionalProperties": false, + "properties": { + "Content": { + "$ref": "#/definitions/TableFieldLinkContentConfiguration" + }, + "Target": { + "$ref": "#/definitions/URLTargetConfiguration" + } + }, + "required": [ + "Content", + "Target" + ], + "type": "object" + }, + "TableFieldLinkContentConfiguration": { + "additionalProperties": false, + "properties": { + "CustomIconContent": { + "$ref": "#/definitions/TableFieldCustomIconContent" + }, + "CustomTextContent": { + "$ref": "#/definitions/TableFieldCustomTextContent" + } + }, + "type": "object" + }, + "TableFieldOption": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "URLStyling": { + "$ref": "#/definitions/TableFieldURLConfiguration" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + }, + "Width": { + "description": "String based length that is composed of value and unit in px", + "type": "string" + } + }, + "required": [ + "FieldId" + ], + "type": "object" + }, + "TableFieldOptions": { + "additionalProperties": false, + "properties": { + "Order": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "PinnedFieldOptions": { + "$ref": "#/definitions/TablePinnedFieldOptions" + }, + "SelectedFieldOptions": { + "items": { + "$ref": "#/definitions/TableFieldOption" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableFieldURLConfiguration": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/TableFieldImageConfiguration" + }, + "LinkConfiguration": { + "$ref": "#/definitions/TableFieldLinkConfiguration" + } + }, + "type": "object" + }, + "TableFieldWells": { + "additionalProperties": false, + "properties": { + "TableAggregatedFieldWells": { + "$ref": "#/definitions/TableAggregatedFieldWells" + }, + "TableUnaggregatedFieldWells": { + "$ref": "#/definitions/TableUnaggregatedFieldWells" + } + }, + "type": "object" + }, + "TableInlineVisualization": { + "additionalProperties": false, + "properties": { + "DataBars": { + "$ref": "#/definitions/DataBarsOptions" + } + }, + "type": "object" + }, + "TableOptions": { + "additionalProperties": false, + "properties": { + "CellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "HeaderStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "Orientation": { + "$ref": "#/definitions/TableOrientation" + }, + "RowAlternateColorOptions": { + "$ref": "#/definitions/RowAlternateColorOptions" + } + }, + "type": "object" + }, + "TableOrientation": { + "enum": [ + "VERTICAL", + "HORIZONTAL" + ], + "type": "string" + }, + "TablePaginatedReportOptions": { + "additionalProperties": false, + "properties": { + "OverflowColumnHeaderVisibility": { + "$ref": "#/definitions/Visibility" + }, + "VerticalOverflowVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TablePinnedFieldOptions": { + "additionalProperties": false, + "properties": { + "PinnedLeftFields": { + "items": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "maxItems": 201, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableRowConditionalFormatting": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TableSideBorderOptions": { + "additionalProperties": false, + "properties": { + "Bottom": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerHorizontal": { + "$ref": "#/definitions/TableBorderOptions" + }, + "InnerVertical": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Left": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Right": { + "$ref": "#/definitions/TableBorderOptions" + }, + "Top": { + "$ref": "#/definitions/TableBorderOptions" + } + }, + "type": "object" + }, + "TableSortConfiguration": { + "additionalProperties": false, + "properties": { + "PaginationConfiguration": { + "$ref": "#/definitions/PaginationConfiguration" + }, + "RowSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableStyleTarget": { + "additionalProperties": false, + "properties": { + "CellType": { + "$ref": "#/definitions/StyledCellType" + } + }, + "required": [ + "CellType" + ], + "type": "object" + }, + "TableTotalsPlacement": { + "enum": [ + "START", + "END", + "AUTO" + ], + "type": "string" + }, + "TableTotalsScrollStatus": { + "enum": [ + "PINNED", + "SCROLLED" + ], + "type": "string" + }, + "TableUnaggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/UnaggregatedField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TableVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TableConfiguration" + }, + "ConditionalFormatting": { + "$ref": "#/definitions/TableConditionalFormatting" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TargetVisualOptions": { + "enum": [ + "ALL_VISUALS" + ], + "type": "string" + }, + "TemplateError": { + "additionalProperties": false, + "properties": { + "Message": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/TemplateErrorType" + }, + "ViolatedEntities": { + "items": { + "$ref": "#/definitions/Entity" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TemplateErrorType": { + "enum": [ + "SOURCE_NOT_FOUND", + "DATA_SET_NOT_FOUND", + "INTERNAL_FAILURE", + "ACCESS_DENIED" + ], + "type": "string" + }, + "TemplateSourceAnalysis": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/DataSetReference" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "TemplateSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceAnalysis": { + "$ref": "#/definitions/TemplateSourceAnalysis" + }, + "SourceTemplate": { + "$ref": "#/definitions/TemplateSourceTemplate" + } + }, + "type": "object" + }, + "TemplateSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "TemplateVersion": { + "additionalProperties": false, + "properties": { + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "DataSetConfigurations": { + "items": { + "$ref": "#/definitions/DataSetConfiguration" + }, + "maxItems": 30, + "minItems": 0, + "type": "array" + }, + "Description": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/TemplateError" + }, + "minItems": 1, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/Sheet" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "SourceEntityArn": { + "type": "string" + }, + "Status": { + "$ref": "#/definitions/ResourceStatus" + }, + "ThemeArn": { + "type": "string" + }, + "VersionNumber": { + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "TemplateVersionDefinition": { + "additionalProperties": false, + "properties": { + "AnalysisDefaults": { + "$ref": "#/definitions/AnalysisDefaults" + }, + "CalculatedFields": { + "items": { + "$ref": "#/definitions/CalculatedField" + }, + "maxItems": 500, + "minItems": 0, + "type": "array" + }, + "ColumnConfigurations": { + "items": { + "$ref": "#/definitions/ColumnConfiguration" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "DataSetConfigurations": { + "items": { + "$ref": "#/definitions/DataSetConfiguration" + }, + "maxItems": 30, + "minItems": 0, + "type": "array" + }, + "FilterGroups": { + "items": { + "$ref": "#/definitions/FilterGroup" + }, + "maxItems": 2000, + "minItems": 0, + "type": "array" + }, + "Options": { + "$ref": "#/definitions/AssetOptions" + }, + "ParameterDeclarations": { + "items": { + "$ref": "#/definitions/ParameterDeclaration" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/SheetDefinition" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "DataSetConfigurations" + ], + "type": "object" + }, + "TextAreaControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextConditionalFormat": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + }, + "Icon": { + "$ref": "#/definitions/ConditionalFormattingIcon" + }, + "TextColor": { + "$ref": "#/definitions/ConditionalFormattingColor" + } + }, + "type": "object" + }, + "TextControlPlaceholderOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TextFieldControlDisplayOptions": { + "additionalProperties": false, + "properties": { + "InfoIconLabelOptions": { + "$ref": "#/definitions/SheetControlInfoIconLabelOptions" + }, + "PlaceholderOptions": { + "$ref": "#/definitions/TextControlPlaceholderOptions" + }, + "TitleOptions": { + "$ref": "#/definitions/LabelOptions" + } + }, + "type": "object" + }, + "TextWrap": { + "enum": [ + "NONE", + "WRAP" + ], + "type": "string" + }, + "ThousandSeparatorOptions": { + "additionalProperties": false, + "properties": { + "Symbol": { + "$ref": "#/definitions/NumericSeparatorSymbol" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TimeBasedForecastProperties": { + "additionalProperties": false, + "properties": { + "LowerBoundary": { + "default": null, + "type": "number" + }, + "PeriodsBackward": { + "maximum": 1000, + "minimum": 0, + "type": "number" + }, + "PeriodsForward": { + "maximum": 1000, + "minimum": 1, + "type": "number" + }, + "PredictionInterval": { + "maximum": 95, + "minimum": 50, + "type": "number" + }, + "Seasonality": { + "maximum": 180, + "minimum": 1, + "type": "number" + }, + "UpperBoundary": { + "default": null, + "type": "number" + } + }, + "type": "object" + }, + "TimeEqualityFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + }, + "Value": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "Column", + "FilterId" + ], + "type": "object" + }, + "TimeGranularity": { + "enum": [ + "YEAR", + "QUARTER", + "MONTH", + "WEEK", + "DAY", + "HOUR", + "MINUTE", + "SECOND", + "MILLISECOND" + ], + "type": "string" + }, + "TimeRangeDrillDownFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "RangeMaximum": { + "format": "date-time", + "type": "string" + }, + "RangeMinimum": { + "format": "date-time", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "RangeMaximum", + "RangeMinimum", + "TimeGranularity" + ], + "type": "object" + }, + "TimeRangeFilter": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "ExcludePeriodConfiguration": { + "$ref": "#/definitions/ExcludePeriodConfiguration" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "IncludeMaximum": { + "default": null, + "type": "boolean" + }, + "IncludeMinimum": { + "default": null, + "type": "boolean" + }, + "NullOption": { + "$ref": "#/definitions/FilterNullOption" + }, + "RangeMaximumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "RangeMinimumValue": { + "$ref": "#/definitions/TimeRangeFilterValue" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "Column", + "FilterId", + "NullOption" + ], + "type": "object" + }, + "TimeRangeFilterValue": { + "additionalProperties": false, + "properties": { + "Parameter": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "RollingDate": { + "$ref": "#/definitions/RollingDateConfiguration" + }, + "StaticValue": { + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "TooltipItem": { + "additionalProperties": false, + "properties": { + "ColumnTooltipItem": { + "$ref": "#/definitions/ColumnTooltipItem" + }, + "FieldTooltipItem": { + "$ref": "#/definitions/FieldTooltipItem" + } + }, + "type": "object" + }, + "TooltipOptions": { + "additionalProperties": false, + "properties": { + "FieldBasedTooltip": { + "$ref": "#/definitions/FieldBasedTooltip" + }, + "SelectedTooltipType": { + "$ref": "#/definitions/SelectedTooltipType" + }, + "TooltipVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TooltipTitleType": { + "enum": [ + "NONE", + "PRIMARY_VALUE" + ], + "type": "string" + }, + "TopBottomComputationType": { + "enum": [ + "TOP", + "BOTTOM" + ], + "type": "string" + }, + "TopBottomFilter": { + "additionalProperties": false, + "properties": { + "AggregationSortConfigurations": { + "items": { + "$ref": "#/definitions/AggregationSortConfiguration" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FilterId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Limit": { + "default": null, + "type": "number" + }, + "ParameterName": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "TimeGranularity": { + "$ref": "#/definitions/TimeGranularity" + } + }, + "required": [ + "AggregationSortConfigurations", + "Column", + "FilterId" + ], + "type": "object" + }, + "TopBottomMoversComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "MoverSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Name": { + "type": "string" + }, + "SortOrder": { + "$ref": "#/definitions/TopBottomSortOrder" + }, + "Time": { + "$ref": "#/definitions/DimensionField" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomRankedComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResultSize": { + "default": 0, + "maximum": 20, + "minimum": 1, + "type": "number" + }, + "Type": { + "$ref": "#/definitions/TopBottomComputationType" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId", + "Type" + ], + "type": "object" + }, + "TopBottomSortOrder": { + "enum": [ + "PERCENT_DIFFERENCE", + "ABSOLUTE_DIFFERENCE" + ], + "type": "string" + }, + "TotalAggregationComputation": { + "additionalProperties": false, + "properties": { + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/MeasureField" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "TotalAggregationFunction": { + "additionalProperties": false, + "properties": { + "SimpleTotalAggregationFunction": { + "$ref": "#/definitions/SimpleTotalAggregationFunction" + } + }, + "type": "object" + }, + "TotalAggregationOption": { + "additionalProperties": false, + "properties": { + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TotalAggregationFunction": { + "$ref": "#/definitions/TotalAggregationFunction" + } + }, + "required": [ + "FieldId", + "TotalAggregationFunction" + ], + "type": "object" + }, + "TotalOptions": { + "additionalProperties": false, + "properties": { + "CustomLabel": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/TableTotalsPlacement" + }, + "ScrollStatus": { + "$ref": "#/definitions/TableTotalsScrollStatus" + }, + "TotalAggregationOptions": { + "items": { + "$ref": "#/definitions/TotalAggregationOption" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TotalCellStyle": { + "$ref": "#/definitions/TableCellStyle" + }, + "TotalsVisibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "TreeMapAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Groups": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "Sizes": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapConfiguration": { + "additionalProperties": false, + "properties": { + "ColorLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "ColorScale": { + "$ref": "#/definitions/ColorScale" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/TreeMapFieldWells" + }, + "GroupLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "SizeLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/TreeMapSortConfiguration" + }, + "Tooltip": { + "$ref": "#/definitions/TooltipOptions" + } + }, + "type": "object" + }, + "TreeMapFieldWells": { + "additionalProperties": false, + "properties": { + "TreeMapAggregatedFieldWells": { + "$ref": "#/definitions/TreeMapAggregatedFieldWells" + } + }, + "type": "object" + }, + "TreeMapSortConfiguration": { + "additionalProperties": false, + "properties": { + "TreeMapGroupItemsLimitConfiguration": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "TreeMapSort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "TreeMapVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/TreeMapConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "TrendArrowOptions": { + "additionalProperties": false, + "properties": { + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "URLTargetConfiguration": { + "enum": [ + "NEW_TAB", + "NEW_WINDOW", + "SAME_TAB" + ], + "type": "string" + }, + "UnaggregatedField": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/ColumnIdentifier" + }, + "FieldId": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "FormatConfiguration": { + "$ref": "#/definitions/FormatConfiguration" + } + }, + "required": [ + "Column", + "FieldId" + ], + "type": "object" + }, + "UniqueValuesComputation": { + "additionalProperties": false, + "properties": { + "Category": { + "$ref": "#/definitions/DimensionField" + }, + "ComputationId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ComputationId" + ], + "type": "object" + }, + "ValidationStrategy": { + "additionalProperties": false, + "properties": { + "Mode": { + "$ref": "#/definitions/ValidationStrategyMode" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ValidationStrategyMode": { + "enum": [ + "STRICT", + "LENIENT" + ], + "type": "string" + }, + "ValueWhenUnsetOption": { + "enum": [ + "RECOMMENDED_VALUE", + "NULL" + ], + "type": "string" + }, + "VerticalTextAlignment": { + "enum": [ + "TOP", + "MIDDLE", + "BOTTOM", + "AUTO" + ], + "type": "string" + }, + "Visibility": { + "enum": [ + "HIDDEN", + "VISIBLE" + ], + "type": "string" + }, + "VisibleRangeOptions": { + "additionalProperties": false, + "properties": { + "PercentRange": { + "$ref": "#/definitions/PercentVisibleRange" + } + }, + "type": "object" + }, + "Visual": { + "additionalProperties": false, + "properties": { + "BarChartVisual": { + "$ref": "#/definitions/BarChartVisual" + }, + "BoxPlotVisual": { + "$ref": "#/definitions/BoxPlotVisual" + }, + "ComboChartVisual": { + "$ref": "#/definitions/ComboChartVisual" + }, + "CustomContentVisual": { + "$ref": "#/definitions/CustomContentVisual" + }, + "EmptyVisual": { + "$ref": "#/definitions/EmptyVisual" + }, + "FilledMapVisual": { + "$ref": "#/definitions/FilledMapVisual" + }, + "FunnelChartVisual": { + "$ref": "#/definitions/FunnelChartVisual" + }, + "GaugeChartVisual": { + "$ref": "#/definitions/GaugeChartVisual" + }, + "GeospatialMapVisual": { + "$ref": "#/definitions/GeospatialMapVisual" + }, + "HeatMapVisual": { + "$ref": "#/definitions/HeatMapVisual" + }, + "HistogramVisual": { + "$ref": "#/definitions/HistogramVisual" + }, + "InsightVisual": { + "$ref": "#/definitions/InsightVisual" + }, + "KPIVisual": { + "$ref": "#/definitions/KPIVisual" + }, + "LineChartVisual": { + "$ref": "#/definitions/LineChartVisual" + }, + "PieChartVisual": { + "$ref": "#/definitions/PieChartVisual" + }, + "PivotTableVisual": { + "$ref": "#/definitions/PivotTableVisual" + }, + "RadarChartVisual": { + "$ref": "#/definitions/RadarChartVisual" + }, + "SankeyDiagramVisual": { + "$ref": "#/definitions/SankeyDiagramVisual" + }, + "ScatterPlotVisual": { + "$ref": "#/definitions/ScatterPlotVisual" + }, + "TableVisual": { + "$ref": "#/definitions/TableVisual" + }, + "TreeMapVisual": { + "$ref": "#/definitions/TreeMapVisual" + }, + "WaterfallVisual": { + "$ref": "#/definitions/WaterfallVisual" + }, + "WordCloudVisual": { + "$ref": "#/definitions/WordCloudVisual" + } + }, + "type": "object" + }, + "VisualCustomAction": { + "additionalProperties": false, + "properties": { + "ActionOperations": { + "items": { + "$ref": "#/definitions/VisualCustomActionOperation" + }, + "maxItems": 2, + "minItems": 1, + "type": "array" + }, + "CustomActionId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Status": { + "$ref": "#/definitions/WidgetStatus" + }, + "Trigger": { + "$ref": "#/definitions/VisualCustomActionTrigger" + } + }, + "required": [ + "ActionOperations", + "CustomActionId", + "Name", + "Trigger" + ], + "type": "object" + }, + "VisualCustomActionOperation": { + "additionalProperties": false, + "properties": { + "FilterOperation": { + "$ref": "#/definitions/CustomActionFilterOperation" + }, + "NavigationOperation": { + "$ref": "#/definitions/CustomActionNavigationOperation" + }, + "SetParametersOperation": { + "$ref": "#/definitions/CustomActionSetParametersOperation" + }, + "URLOperation": { + "$ref": "#/definitions/CustomActionURLOperation" + } + }, + "type": "object" + }, + "VisualCustomActionTrigger": { + "enum": [ + "DATA_POINT_CLICK", + "DATA_POINT_MENU" + ], + "type": "string" + }, + "VisualPalette": { + "additionalProperties": false, + "properties": { + "ChartColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "ColorMap": { + "items": { + "$ref": "#/definitions/DataPathColor" + }, + "maxItems": 5000, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "VisualSubtitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/LongFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "VisualTitleLabelOptions": { + "additionalProperties": false, + "properties": { + "FormatText": { + "$ref": "#/definitions/ShortFormatText" + }, + "Visibility": { + "$ref": "#/definitions/Visibility" + } + }, + "type": "object" + }, + "WaterfallChartAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "Breakdowns": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Categories": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "Values": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "CategoryAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "DataLabels": { + "$ref": "#/definitions/DataLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WaterfallChartFieldWells" + }, + "Legend": { + "$ref": "#/definitions/LegendOptions" + }, + "PrimaryYAxisDisplayOptions": { + "$ref": "#/definitions/AxisDisplayOptions" + }, + "PrimaryYAxisLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "SortConfiguration": { + "$ref": "#/definitions/WaterfallChartSortConfiguration" + }, + "VisualPalette": { + "$ref": "#/definitions/VisualPalette" + }, + "WaterfallChartOptions": { + "$ref": "#/definitions/WaterfallChartOptions" + } + }, + "type": "object" + }, + "WaterfallChartFieldWells": { + "additionalProperties": false, + "properties": { + "WaterfallChartAggregatedFieldWells": { + "$ref": "#/definitions/WaterfallChartAggregatedFieldWells" + } + }, + "type": "object" + }, + "WaterfallChartOptions": { + "additionalProperties": false, + "properties": { + "TotalBarLabel": { + "type": "string" + } + }, + "type": "object" + }, + "WaterfallChartSortConfiguration": { + "additionalProperties": false, + "properties": { + "BreakdownItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WaterfallVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WaterfallChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WhatIfPointScenario": { + "additionalProperties": false, + "properties": { + "Date": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "Date", + "Value" + ], + "type": "object" + }, + "WhatIfRangeScenario": { + "additionalProperties": false, + "properties": { + "EndDate": { + "format": "date-time", + "type": "string" + }, + "StartDate": { + "format": "date-time", + "type": "string" + }, + "Value": { + "default": 0, + "type": "number" + } + }, + "required": [ + "EndDate", + "StartDate", + "Value" + ], + "type": "object" + }, + "WidgetStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "WordCloudAggregatedFieldWells": { + "additionalProperties": false, + "properties": { + "GroupBy": { + "items": { + "$ref": "#/definitions/DimensionField" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Size": { + "items": { + "$ref": "#/definitions/MeasureField" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudChartConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryLabelOptions": { + "$ref": "#/definitions/ChartAxisLabelOptions" + }, + "FieldWells": { + "$ref": "#/definitions/WordCloudFieldWells" + }, + "SortConfiguration": { + "$ref": "#/definitions/WordCloudSortConfiguration" + }, + "WordCloudOptions": { + "$ref": "#/definitions/WordCloudOptions" + } + }, + "type": "object" + }, + "WordCloudCloudLayout": { + "enum": [ + "FLUID", + "NORMAL" + ], + "type": "string" + }, + "WordCloudFieldWells": { + "additionalProperties": false, + "properties": { + "WordCloudAggregatedFieldWells": { + "$ref": "#/definitions/WordCloudAggregatedFieldWells" + } + }, + "type": "object" + }, + "WordCloudOptions": { + "additionalProperties": false, + "properties": { + "CloudLayout": { + "$ref": "#/definitions/WordCloudCloudLayout" + }, + "MaximumStringLength": { + "maximum": 100, + "minimum": 1, + "type": "number" + }, + "WordCasing": { + "$ref": "#/definitions/WordCloudWordCasing" + }, + "WordOrientation": { + "$ref": "#/definitions/WordCloudWordOrientation" + }, + "WordPadding": { + "$ref": "#/definitions/WordCloudWordPadding" + }, + "WordScaling": { + "$ref": "#/definitions/WordCloudWordScaling" + } + }, + "type": "object" + }, + "WordCloudSortConfiguration": { + "additionalProperties": false, + "properties": { + "CategoryItemsLimit": { + "$ref": "#/definitions/ItemsLimitConfiguration" + }, + "CategorySort": { + "items": { + "$ref": "#/definitions/FieldSortOptions" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "WordCloudVisual": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/VisualCustomAction" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "ChartConfiguration": { + "$ref": "#/definitions/WordCloudChartConfiguration" + }, + "ColumnHierarchies": { + "items": { + "$ref": "#/definitions/ColumnHierarchy" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "Subtitle": { + "$ref": "#/definitions/VisualSubtitleLabelOptions" + }, + "Title": { + "$ref": "#/definitions/VisualTitleLabelOptions" + }, + "VisualId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + } + }, + "required": [ + "VisualId" + ], + "type": "object" + }, + "WordCloudWordCasing": { + "enum": [ + "LOWER_CASE", + "EXISTING_CASE" + ], + "type": "string" + }, + "WordCloudWordOrientation": { + "enum": [ + "HORIZONTAL", + "HORIZONTAL_AND_VERTICAL" + ], + "type": "string" + }, + "WordCloudWordPadding": { + "enum": [ + "NONE", + "SMALL", + "MEDIUM", + "LARGE" + ], + "type": "string" + }, + "WordCloudWordScaling": { + "enum": [ + "EMPHASIZE", + "NORMAL" + ], + "type": "string" + } + }, + "description": "Definition of the AWS::QuickSight::Template Resource Type.", + "handlers": { + "create": { + "permissions": [ + "quicksight:DescribeTemplate", + "quicksight:DescribeTemplatePermissions", + "quicksight:CreateTemplate", + "quicksight:DescribeAnalysis", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "quicksight:DescribeTemplate", + "quicksight:DeleteTemplate" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "AwsAccountId": { + "$ref": "resource-schema.json#/properties/AwsAccountId" + } + }, + "required": [ + "AwsAccountId" + ] + }, + "permissions": [ + "quicksight:ListTemplates" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeTemplate", + "quicksight:DescribeTemplatePermissions", + "quicksight:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "quicksight:DescribeTemplate", + "quicksight:DescribeTemplatePermissions", + "quicksight:UpdateTemplate", + "quicksight:UpdateTemplatePermissions", + "quicksight:PassDataSet", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AwsAccountId", + "/properties/TemplateId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/TemplateVersionDefinition" + }, + "LastUpdatedTime": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/TemplateSourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "TemplateId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "ValidationStrategy": { + "$ref": "#/definitions/ValidationStrategy" + }, + "Version": { + "$ref": "#/definitions/TemplateVersion" + }, + "VersionDescription": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedTime", + "/properties/LastUpdatedTime", + "/properties/Version" + ], + "required": [ + "AwsAccountId", + "TemplateId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-quicksight", + "typeName": "AWS::QuickSight::Template", + "writeOnlyProperties": [ + "/properties/Definition", + "/properties/VersionDescription", + "/properties/SourceEntity", + "/properties/ValidationStrategy" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-theme.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-theme.json new file mode 100644 index 0000000000..b2ed86d50f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-quicksight-theme.json @@ -0,0 +1,477 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ThemeId", + "/properties/AwsAccountId" + ], + "definitions": { + "BorderStyle": { + "additionalProperties": false, + "properties": { + "Show": { + "default": null, + "type": "boolean" + } + }, + "type": "object" + }, + "DataColorPalette": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + }, + "EmptyFillColor": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "MinMaxGradient": { + "items": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "maxItems": 100, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "Font": { + "additionalProperties": false, + "properties": { + "FontFamily": { + "type": "string" + } + }, + "type": "object" + }, + "GutterStyle": { + "additionalProperties": false, + "properties": { + "Show": { + "default": null, + "type": "boolean" + } + }, + "type": "object" + }, + "MarginStyle": { + "additionalProperties": false, + "properties": { + "Show": { + "default": null, + "type": "boolean" + } + }, + "type": "object" + }, + "ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array" + }, + "Principal": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "ResourceStatus": { + "enum": [ + "CREATION_IN_PROGRESS", + "CREATION_SUCCESSFUL", + "CREATION_FAILED", + "UPDATE_IN_PROGRESS", + "UPDATE_SUCCESSFUL", + "UPDATE_FAILED", + "DELETED" + ], + "type": "string" + }, + "SheetStyle": { + "additionalProperties": false, + "properties": { + "Tile": { + "$ref": "#/definitions/TileStyle" + }, + "TileLayout": { + "$ref": "#/definitions/TileLayoutStyle" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "ThemeConfiguration": { + "additionalProperties": false, + "properties": { + "DataColorPalette": { + "$ref": "#/definitions/DataColorPalette" + }, + "Sheet": { + "$ref": "#/definitions/SheetStyle" + }, + "Typography": { + "$ref": "#/definitions/Typography" + }, + "UIColorPalette": { + "$ref": "#/definitions/UIColorPalette" + } + }, + "type": "object" + }, + "ThemeError": { + "additionalProperties": false, + "properties": { + "Message": { + "pattern": ".*\\S.*", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ThemeErrorType" + } + }, + "type": "object" + }, + "ThemeErrorType": { + "enum": [ + "INTERNAL_FAILURE" + ], + "type": "string" + }, + "ThemeType": { + "enum": [ + "QUICKSIGHT", + "CUSTOM", + "ALL" + ], + "type": "string" + }, + "ThemeVersion": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "BaseThemeId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/ThemeConfiguration" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/ThemeError" + }, + "minItems": 1, + "type": "array" + }, + "Status": { + "$ref": "#/definitions/ResourceStatus" + }, + "VersionNumber": { + "minimum": 1, + "type": "number" + } + }, + "type": "object" + }, + "TileLayoutStyle": { + "additionalProperties": false, + "properties": { + "Gutter": { + "$ref": "#/definitions/GutterStyle" + }, + "Margin": { + "$ref": "#/definitions/MarginStyle" + } + }, + "type": "object" + }, + "TileStyle": { + "additionalProperties": false, + "properties": { + "Border": { + "$ref": "#/definitions/BorderStyle" + } + }, + "type": "object" + }, + "Typography": { + "additionalProperties": false, + "properties": { + "FontFamilies": { + "items": { + "$ref": "#/definitions/Font" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "UIColorPalette": { + "additionalProperties": false, + "properties": { + "Accent": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "AccentForeground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Danger": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DangerForeground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Dimension": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "DimensionForeground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Measure": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "MeasureForeground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PrimaryBackground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "PrimaryForeground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "SecondaryBackground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "SecondaryForeground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Success": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "SuccessForeground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "Warning": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + }, + "WarningForeground": { + "pattern": "^#[A-F0-9]{6}$", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Definition of the AWS::QuickSight::Theme Resource Type.", + "handlers": { + "create": { + "permissions": [ + "quicksight:DescribeTheme", + "quicksight:DescribeThemePermissions", + "quicksight:CreateTheme", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "quicksight:DescribeTheme", + "quicksight:DeleteTheme" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "AwsAccountId": { + "$ref": "resource-schema.json#/properties/AwsAccountId" + } + }, + "required": [ + "AwsAccountId" + ] + }, + "permissions": [ + "quicksight:ListThemes" + ] + }, + "read": { + "permissions": [ + "quicksight:DescribeTheme", + "quicksight:DescribeThemePermissions", + "quicksight:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "quicksight:DescribeTheme", + "quicksight:DescribeThemePermissions", + "quicksight:UpdateTheme", + "quicksight:UpdateThemePermissions", + "quicksight:TagResource", + "quicksight:UntagResource", + "quicksight:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ThemeId", + "/properties/AwsAccountId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AwsAccountId": { + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "BaseThemeId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/ThemeConfiguration" + }, + "CreatedTime": { + "format": "date-time", + "type": "string" + }, + "LastUpdatedTime": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/ResourcePermission" + }, + "maxItems": 64, + "minItems": 1, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 1, + "type": "array" + }, + "ThemeId": { + "maxLength": 512, + "minLength": 1, + "pattern": "[\\w\\-]+", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/ThemeType" + }, + "Version": { + "$ref": "#/definitions/ThemeVersion" + }, + "VersionDescription": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CreatedTime", + "/properties/Version", + "/properties/LastUpdatedTime", + "/properties/Arn", + "/properties/Type" + ], + "required": [ + "AwsAccountId", + "ThemeId", + "BaseThemeId", + "Configuration", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-quicksight", + "typeName": "AWS::QuickSight::Theme", + "writeOnlyProperties": [ + "/properties/VersionDescription", + "/properties/Configuration", + "/properties/BaseThemeId" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-s3-bucket.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-s3-bucket.json new file mode 100644 index 0000000000..ec2d43eb37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-s3-bucket.json @@ -0,0 +1,1696 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/BucketName", + "/properties/ObjectLockEnabled" + ], + "definitions": { + "AbortIncompleteMultipartUpload": { + "additionalProperties": false, + "description": "Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload.", + "properties": { + "DaysAfterInitiation": { + "description": "Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload.", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "DaysAfterInitiation" + ], + "type": "object" + }, + "AccelerateConfiguration": { + "additionalProperties": false, + "properties": { + "AccelerationStatus": { + "description": "Configures the transfer acceleration state for an Amazon S3 bucket.", + "enum": [ + "Enabled", + "Suspended" + ], + "type": "string" + } + }, + "required": [ + "AccelerationStatus" + ], + "type": "object" + }, + "AccessControlTranslation": { + "additionalProperties": false, + "description": "Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object.", + "properties": { + "Owner": { + "const": "Destination", + "type": "string" + } + }, + "required": [ + "Owner" + ], + "type": "object" + }, + "AnalyticsConfiguration": { + "additionalProperties": false, + "description": "Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket.", + "properties": { + "Id": { + "description": "The ID that identifies the analytics configuration.", + "type": "string" + }, + "Prefix": { + "description": "The prefix that an object must have to be included in the analytics results.", + "type": "string" + }, + "StorageClassAnalysis": { + "$ref": "#/definitions/StorageClassAnalysis" + }, + "TagFilters": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "StorageClassAnalysis", + "Id" + ], + "type": "object" + }, + "Arn": { + "description": "the Amazon Resource Name (ARN) of the specified bucket.", + "type": "string" + }, + "BucketEncryption": { + "additionalProperties": false, + "description": "Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS).", + "properties": { + "ServerSideEncryptionConfiguration": { + "description": "Specifies the default server-side-encryption configuration.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ServerSideEncryptionRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "ServerSideEncryptionConfiguration" + ], + "type": "object" + }, + "CorsConfiguration": { + "additionalProperties": false, + "properties": { + "CorsRules": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CorsRule", + "maxLength": 100 + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "CorsRules" + ], + "type": "object" + }, + "CorsRule": { + "additionalProperties": false, + "description": "A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration.", + "properties": { + "AllowedHeaders": { + "description": "Headers that are specified in the Access-Control-Request-Headers header.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AllowedMethods": { + "description": "An HTTP method that you allow the origin to execute.", + "insertionOrder": true, + "items": { + "enum": [ + "GET", + "PUT", + "HEAD", + "POST", + "DELETE" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AllowedOrigins": { + "description": "One or more origins you want customers to be able to access the bucket from.", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ExposedHeaders": { + "description": "One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object).", + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "description": "A unique identifier for this rule.", + "maxLength": 255, + "type": "string" + }, + "MaxAge": { + "description": "The time in seconds that your browser is to cache the preflight response for the specified resource.", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "AllowedMethods", + "AllowedOrigins" + ], + "type": "object" + }, + "DataExport": { + "additionalProperties": false, + "description": "Specifies how data related to the storage class analysis for an Amazon S3 bucket should be exported.", + "properties": { + "Destination": { + "$ref": "#/definitions/Destination" + }, + "OutputSchemaVersion": { + "const": "V_1", + "description": "The version of the output schema to use when exporting data.", + "type": "string" + } + }, + "required": [ + "Destination", + "OutputSchemaVersion" + ], + "type": "object" + }, + "DefaultRetention": { + "additionalProperties": false, + "description": "The default retention period that you want to apply to new objects placed in the specified bucket.", + "properties": { + "Days": { + "type": "integer" + }, + "Mode": { + "enum": [ + "COMPLIANCE", + "GOVERNANCE" + ], + "type": "string" + }, + "Years": { + "type": "integer" + } + }, + "type": "object" + }, + "DeleteMarkerReplication": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "type": "object" + }, + "Destination": { + "additionalProperties": false, + "description": "Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).", + "properties": { + "BucketAccountId": { + "description": "The account ID that owns the destination S3 bucket. ", + "type": "string" + }, + "BucketArn": { + "description": "The Amazon Resource Name (ARN) of the bucket to which data is exported.", + "type": "string" + }, + "Format": { + "description": "Specifies the file format used when exporting data to Amazon S3.", + "enum": [ + "CSV", + "ORC", + "Parquet" + ], + "type": "string" + }, + "Prefix": { + "description": "The prefix to use when exporting data. The prefix is prepended to all results.", + "type": "string" + } + }, + "required": [ + "BucketArn", + "Format" + ], + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "description": "Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects.", + "properties": { + "ReplicaKmsKeyID": { + "description": "Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket.", + "type": "string" + } + }, + "required": [ + "ReplicaKmsKeyID" + ], + "type": "object" + }, + "EventBridgeConfiguration": { + "additionalProperties": false, + "description": "Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket.", + "properties": { + "EventBridgeEnabled": { + "default": "true", + "description": "Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket.", + "type": "boolean" + } + }, + "required": [ + "EventBridgeEnabled" + ], + "type": "object" + }, + "FilterRule": { + "additionalProperties": false, + "description": "Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.", + "properties": { + "Name": { + "maxLength": 1024, + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "IntelligentTieringConfiguration": { + "additionalProperties": false, + "properties": { + "Id": { + "description": "The ID used to identify the S3 Intelligent-Tiering configuration.", + "type": "string" + }, + "Prefix": { + "description": "An object key name prefix that identifies the subset of objects to which the rule applies.", + "type": "string" + }, + "Status": { + "description": "Specifies the status of the configuration.", + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "TagFilters": { + "description": "A container for a key-value pair.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Tierings": { + "description": "Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Tiering" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Id", + "Status", + "Tierings" + ], + "type": "object" + }, + "InventoryConfiguration": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/Destination" + }, + "Enabled": { + "description": "Specifies whether the inventory is enabled or disabled.", + "type": "boolean" + }, + "Id": { + "description": "The ID used to identify the inventory configuration.", + "type": "string" + }, + "IncludedObjectVersions": { + "description": "Object versions to include in the inventory list.", + "enum": [ + "All", + "Current" + ], + "type": "string" + }, + "OptionalFields": { + "description": "Contains the optional fields that are included in the inventory results.", + "insertionOrder": true, + "items": { + "enum": [ + "Size", + "LastModifiedDate", + "StorageClass", + "ETag", + "IsMultipartUploaded", + "ReplicationStatus", + "EncryptionStatus", + "ObjectLockRetainUntilDate", + "ObjectLockMode", + "ObjectLockLegalHoldStatus", + "IntelligentTieringAccessTier", + "BucketKeyStatus", + "ChecksumAlgorithm", + "ObjectAccessControlList", + "ObjectOwner", + "ChecksumAlgorithm" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Prefix": { + "description": "The prefix that is prepended to all inventory results.", + "type": "string" + }, + "ScheduleFrequency": { + "description": "Specifies the schedule for generating inventory results.", + "enum": [ + "Daily", + "Weekly" + ], + "type": "string" + } + }, + "required": [ + "Destination", + "Enabled", + "Id", + "IncludedObjectVersions", + "ScheduleFrequency" + ], + "type": "object" + }, + "LambdaConfiguration": { + "additionalProperties": false, + "description": "Describes the AWS Lambda functions to invoke and the events for which to invoke them.", + "properties": { + "Event": { + "description": "The Amazon S3 bucket event for which to invoke the AWS Lambda function.", + "type": "string" + }, + "Filter": { + "$ref": "#/definitions/NotificationFilter", + "description": "The filtering rules that determine which objects invoke the AWS Lambda function." + }, + "Function": { + "description": "The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs.", + "type": "string" + } + }, + "required": [ + "Function", + "Event" + ], + "type": "object" + }, + "LifecycleConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "description": "A lifecycle rule for individual objects in an Amazon S3 bucket.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationBucketName": { + "description": "The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined.", + "type": "string" + }, + "LogFilePrefix": { + "type": "string" + }, + "TargetObjectKeyFormat": { + "$ref": "#/definitions/TargetObjectKeyFormat" + } + }, + "type": "object" + }, + "Metrics": { + "additionalProperties": false, + "properties": { + "EventThreshold": { + "$ref": "#/definitions/ReplicationTimeValue" + }, + "Status": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "MetricsConfiguration": { + "additionalProperties": false, + "properties": { + "AccessPointArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "TagFilters": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "NoncurrentVersionExpiration": { + "additionalProperties": false, + "description": "Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime", + "properties": { + "NewerNoncurrentVersions": { + "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", + "type": "integer" + }, + "NoncurrentDays": { + "description": "Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action", + "type": "integer" + } + }, + "required": [ + "NoncurrentDays" + ], + "type": "object" + }, + "NoncurrentVersionTransition": { + "additionalProperties": false, + "description": "Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime.", + "properties": { + "NewerNoncurrentVersions": { + "description": "Specified the number of newer noncurrent and current versions that must exists before performing the associated action", + "type": "integer" + }, + "StorageClass": { + "description": "The class of storage used to store the object.", + "enum": [ + "DEEP_ARCHIVE", + "GLACIER", + "Glacier", + "GLACIER_IR", + "INTELLIGENT_TIERING", + "ONEZONE_IA", + "STANDARD_IA" + ], + "type": "string" + }, + "TransitionInDays": { + "description": "Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action.", + "type": "integer" + } + }, + "required": [ + "StorageClass", + "TransitionInDays" + ], + "type": "object" + }, + "NotificationConfiguration": { + "additionalProperties": false, + "description": "Describes the notification configuration for an Amazon S3 bucket.", + "properties": { + "EventBridgeConfiguration": { + "$ref": "#/definitions/EventBridgeConfiguration" + }, + "LambdaConfigurations": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/LambdaConfiguration" + }, + "type": "array", + "uniqueItems": true + }, + "QueueConfigurations": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/QueueConfiguration" + }, + "type": "array", + "uniqueItems": true + }, + "TopicConfigurations": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TopicConfiguration" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "NotificationFilter": { + "additionalProperties": false, + "description": "Specifies object key name filtering rules.", + "properties": { + "S3Key": { + "$ref": "#/definitions/S3KeyFilter" + } + }, + "required": [ + "S3Key" + ], + "type": "object" + }, + "ObjectLockConfiguration": { + "additionalProperties": false, + "properties": { + "ObjectLockEnabled": { + "const": "Enabled", + "type": "string" + }, + "Rule": { + "$ref": "#/definitions/ObjectLockRule" + } + }, + "type": "object" + }, + "ObjectLockRule": { + "additionalProperties": false, + "description": "The Object Lock rule in place for the specified object.", + "properties": { + "DefaultRetention": { + "$ref": "#/definitions/DefaultRetention" + } + }, + "type": "object" + }, + "OwnershipControls": { + "additionalProperties": false, + "properties": { + "Rules": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/OwnershipControlsRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "OwnershipControlsRule": { + "additionalProperties": false, + "properties": { + "ObjectOwnership": { + "description": "Specifies an object ownership rule.", + "enum": [ + "ObjectWriter", + "BucketOwnerPreferred", + "BucketOwnerEnforced" + ], + "type": "string" + } + }, + "type": "object" + }, + "PartitionedPrefix": { + "additionalProperties": false, + "description": "This format appends a time based prefix to the given log file prefix for delivering server access log file.", + "properties": { + "PartitionDateSource": { + "description": "Date Source for creating a partitioned prefix. This can be event time or delivery time.", + "enum": [ + "EventTime", + "DeliveryTime" + ], + "type": "string" + } + }, + "type": "object" + }, + "PublicAccessBlockConfiguration": { + "additionalProperties": false, + "description": "Configuration that defines how Amazon S3 handles public access.", + "properties": { + "BlockPublicAcls": { + "description": "Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior:\n- PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.\n - PUT Object calls fail if the request includes a public ACL.\nEnabling this setting doesn't affect existing policies or ACLs.", + "type": "boolean" + }, + "BlockPublicPolicy": { + "description": "Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.\nEnabling this setting doesn't affect existing bucket policies.", + "type": "boolean" + }, + "IgnorePublicAcls": { + "description": "Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket.\nEnabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.", + "type": "boolean" + }, + "RestrictPublicBuckets": { + "description": "Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy.\nEnabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.", + "type": "boolean" + } + }, + "type": "object" + }, + "QueueConfiguration": { + "additionalProperties": false, + "description": "The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages.", + "properties": { + "Event": { + "description": "The Amazon S3 bucket event about which you want to publish messages to Amazon SQS.", + "type": "string" + }, + "Filter": { + "$ref": "#/definitions/NotificationFilter", + "description": "The filtering rules that determine which objects trigger notifications." + }, + "Queue": { + "description": "The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type.", + "type": "string" + } + }, + "required": [ + "Event", + "Queue" + ], + "type": "object" + }, + "RedirectAllRequestsTo": { + "additionalProperties": false, + "dependencies": { + "RedirectAllRequestsTo": { + "properties": { + "ErrorDocument": false, + "IndexDocument": false, + "RoutingRules": false + } + } + }, + "description": "Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket.", + "properties": { + "HostName": { + "description": "Name of the host where requests are redirected.", + "type": "string" + }, + "Protocol": { + "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", + "enum": [ + "http", + "https" + ], + "type": "string" + } + }, + "required": [ + "HostName" + ], + "type": "object" + }, + "RedirectRule": { + "additionalProperties": false, + "description": "Specifies how requests are redirected. In the event of an error, you can specify a different error code to return.", + "properties": { + "HostName": { + "description": "The host name to use in the redirect request.", + "type": "string" + }, + "HttpRedirectCode": { + "description": "The HTTP redirect code to use on the response. Not required if one of the siblings is present.", + "type": "string" + }, + "Protocol": { + "description": "Protocol to use when redirecting requests. The default is the protocol that is used in the original request.", + "enum": [ + "http", + "https" + ], + "type": "string" + }, + "ReplaceKeyPrefixWith": { + "description": "The object key prefix to use in the redirect request.", + "type": "string" + }, + "ReplaceKeyWith": { + "description": "The specific object key to use in the redirect request.d", + "type": "string" + } + }, + "type": "object" + }, + "ReplicaModifications": { + "additionalProperties": false, + "properties": { + "Status": { + "description": "Specifies whether Amazon S3 replicates modifications on replicas.", + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "ReplicationConfiguration": { + "additionalProperties": false, + "description": "A container for replication rules. You can add up to 1,000 rules. The maximum size of a replication configuration is 2 MB.", + "properties": { + "Role": { + "awsType": "IamRoleArn", + "description": "The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects.", + "type": "string" + }, + "Rules": { + "description": "A container for one or more replication rules.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ReplicationRule", + "maxLength": 1000, + "minLength": 1 + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Role", + "Rules" + ], + "type": "object" + }, + "ReplicationDestination": { + "additionalProperties": false, + "description": "Specifies which Amazon S3 bucket to store replicated objects in and their storage class.", + "properties": { + "AccessControlTranslation": { + "$ref": "#/definitions/AccessControlTranslation" + }, + "Account": { + "type": "string" + }, + "Bucket": { + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "Metrics": { + "$ref": "#/definitions/Metrics" + }, + "ReplicationTime": { + "$ref": "#/definitions/ReplicationTime" + }, + "StorageClass": { + "description": "The storage class to use when replicating objects, such as S3 Standard or reduced redundancy.", + "enum": [ + "DEEP_ARCHIVE", + "GLACIER", + "GLACIER_IR", + "INTELLIGENT_TIERING", + "ONEZONE_IA", + "REDUCED_REDUNDANCY", + "STANDARD", + "STANDARD_IA" + ], + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "ReplicationRule": { + "additionalProperties": false, + "description": "Specifies which Amazon S3 objects to replicate and where to store the replicas.", + "properties": { + "DeleteMarkerReplication": { + "$ref": "#/definitions/DeleteMarkerReplication" + }, + "Destination": { + "$ref": "#/definitions/ReplicationDestination" + }, + "Filter": { + "$ref": "#/definitions/ReplicationRuleFilter" + }, + "Id": { + "description": "A unique identifier for the rule.", + "maxLength": 255, + "type": "string" + }, + "Prefix": { + "description": "An object key name prefix that identifies the object or objects to which the rule applies.", + "maxLength": 1024, + "type": "string" + }, + "Priority": { + "type": "integer" + }, + "SourceSelectionCriteria": { + "$ref": "#/definitions/SourceSelectionCriteria" + }, + "Status": { + "description": "Specifies whether the rule is enabled.", + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "Destination", + "Status" + ], + "type": "object" + }, + "ReplicationRuleAndOperator": { + "additionalProperties": false, + "properties": { + "Prefix": { + "type": "string" + }, + "TagFilters": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ReplicationRuleFilter": { + "additionalProperties": false, + "properties": { + "And": { + "$ref": "#/definitions/ReplicationRuleAndOperator" + }, + "Prefix": { + "type": "string" + }, + "TagFilter": { + "$ref": "#/definitions/TagFilter" + } + }, + "type": "object" + }, + "ReplicationTime": { + "additionalProperties": false, + "properties": { + "Status": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "Time": { + "$ref": "#/definitions/ReplicationTimeValue" + } + }, + "required": [ + "Status", + "Time" + ], + "type": "object" + }, + "ReplicationTimeValue": { + "additionalProperties": false, + "properties": { + "Minutes": { + "type": "integer" + } + }, + "required": [ + "Minutes" + ], + "type": "object" + }, + "RoutingRule": { + "additionalProperties": false, + "description": "Specifies the redirect behavior and when a redirect is applied.", + "properties": { + "RedirectRule": { + "$ref": "#/definitions/RedirectRule", + "description": "Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return." + }, + "RoutingRuleCondition": { + "$ref": "#/definitions/RoutingRuleCondition" + } + }, + "required": [ + "RedirectRule" + ], + "type": "object" + }, + "RoutingRuleCondition": { + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "HttpErrorCodeReturnedEquals" + ] + }, + { + "required": [ + "KeyPrefixEquals" + ] + } + ], + "description": "A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals", + "properties": { + "HttpErrorCodeReturnedEquals": { + "description": "The HTTP error code when the redirect is applied. ", + "type": "string" + }, + "KeyPrefixEquals": { + "description": "The object key name prefix when the redirect is applied.", + "type": "string" + } + }, + "type": "object" + }, + "Rule": { + "additionalProperties": false, + "description": "You must specify at least one of the following properties: AbortIncompleteMultipartUpload, ExpirationDate, ExpirationInDays, NoncurrentVersionExpirationInDays, NoncurrentVersionTransition, NoncurrentVersionTransitions, Transition, or Transitions.", + "properties": { + "AbortIncompleteMultipartUpload": { + "$ref": "#/definitions/AbortIncompleteMultipartUpload" + }, + "ExpirationDate": { + "$ref": "#/definitions/iso8601UTC" + }, + "ExpirationInDays": { + "type": "integer" + }, + "ExpiredObjectDeleteMarker": { + "type": "boolean" + }, + "Id": { + "maxLength": 255, + "type": "string" + }, + "NoncurrentVersionExpiration": { + "$ref": "#/definitions/NoncurrentVersionExpiration" + }, + "NoncurrentVersionExpirationInDays": { + "type": "integer" + }, + "NoncurrentVersionTransition": { + "$ref": "#/definitions/NoncurrentVersionTransition" + }, + "NoncurrentVersionTransitions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/NoncurrentVersionTransition" + }, + "type": "array", + "uniqueItems": true + }, + "ObjectSizeGreaterThan": { + "maxLength": 20, + "pattern": "[0-9]+", + "type": "string" + }, + "ObjectSizeLessThan": { + "maxLength": 20, + "pattern": "[0-9]+", + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Status": { + "enum": [ + "Enabled", + "Disabled" + ], + "type": "string" + }, + "TagFilters": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TagFilter" + }, + "type": "array", + "uniqueItems": true + }, + "Transition": { + "$ref": "#/definitions/Transition" + }, + "Transitions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Transition" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "S3KeyFilter": { + "additionalProperties": false, + "description": "A container for object key name prefix and suffix filtering rules.", + "properties": { + "Rules": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FilterRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "ServerSideEncryptionByDefault": { + "additionalProperties": false, + "description": "Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.", + "properties": { + "KMSMasterKeyID": { + "description": "\"KMSMasterKeyID\" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse.", + "type": "string" + }, + "SSEAlgorithm": { + "enum": [ + "aws:kms", + "AES256", + "aws:kms:dsse" + ], + "type": "string" + } + }, + "required": [ + "SSEAlgorithm" + ], + "type": "object" + }, + "ServerSideEncryptionRule": { + "additionalProperties": false, + "description": "Specifies the default server-side encryption configuration.", + "properties": { + "BucketKeyEnabled": { + "description": "Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.", + "type": "boolean" + }, + "ServerSideEncryptionByDefault": { + "$ref": "#/definitions/ServerSideEncryptionByDefault" + } + }, + "type": "object" + }, + "SourceSelectionCriteria": { + "additionalProperties": false, + "description": "A container that describes additional filters for identifying the source objects that you want to replicate.", + "properties": { + "ReplicaModifications": { + "$ref": "#/definitions/ReplicaModifications", + "description": "A filter that you can specify for selection for modifications on replicas." + }, + "SseKmsEncryptedObjects": { + "$ref": "#/definitions/SseKmsEncryptedObjects", + "description": "A container for filter information for the selection of Amazon S3 objects encrypted with AWS KMS." + } + }, + "type": "object" + }, + "SseKmsEncryptedObjects": { + "additionalProperties": false, + "description": "A container for filter information for the selection of S3 objects encrypted with AWS KMS.", + "properties": { + "Status": { + "description": "Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service.", + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "StorageClassAnalysis": { + "additionalProperties": false, + "description": "Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket.", + "properties": { + "DataExport": { + "$ref": "#/definitions/DataExport" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagFilter": { + "additionalProperties": false, + "description": "Tags to use to identify a subset of objects for an Amazon S3 bucket.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetObjectKeyFormat": { + "description": "Describes the key format for server access log file in the target bucket. You can choose between SimplePrefix and PartitionedPrefix.", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "SimplePrefix": { + "additionalProperties": false, + "description": "This format defaults the prefix to the given log file prefix for delivering server access log file.", + "type": "object" + } + }, + "required": [ + "SimplePrefix" + ] + }, + { + "additionalProperties": false, + "properties": { + "PartitionedPrefix": { + "$ref": "#/definitions/PartitionedPrefix" + } + }, + "required": [ + "PartitionedPrefix" + ] + } + ], + "type": "object" + }, + "Tiering": { + "additionalProperties": false, + "properties": { + "AccessTier": { + "description": "S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class.", + "enum": [ + "ARCHIVE_ACCESS", + "DEEP_ARCHIVE_ACCESS" + ], + "type": "string" + }, + "Days": { + "description": "The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).", + "type": "integer" + } + }, + "required": [ + "AccessTier", + "Days" + ], + "type": "object" + }, + "TopicConfiguration": { + "additionalProperties": false, + "description": "The topic to which notifications are sent and the events for which notifications are generated.", + "properties": { + "Event": { + "description": "The Amazon S3 bucket event about which to send notifications.", + "type": "string" + }, + "Filter": { + "$ref": "#/definitions/NotificationFilter", + "description": "The filtering rules that determine for which objects to send notifications." + }, + "Topic": { + "description": "The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type.", + "type": "string" + } + }, + "required": [ + "Event", + "Topic" + ], + "type": "object" + }, + "Transition": { + "additionalProperties": false, + "description": "You must specify at least one of \"TransitionDate\" and \"TransitionInDays\"", + "properties": { + "StorageClass": { + "enum": [ + "DEEP_ARCHIVE", + "GLACIER", + "Glacier", + "GLACIER_IR", + "INTELLIGENT_TIERING", + "ONEZONE_IA", + "STANDARD_IA" + ], + "type": "string" + }, + "TransitionDate": { + "$ref": "#/definitions/iso8601UTC" + }, + "TransitionInDays": { + "type": "integer" + } + }, + "required": [ + "StorageClass" + ], + "type": "object" + }, + "VersioningConfiguration": { + "additionalProperties": false, + "description": "Describes the versioning state of an Amazon S3 bucket.", + "properties": { + "Status": { + "default": "Suspended", + "description": "The versioning state of the bucket.", + "enum": [ + "Enabled", + "Suspended" + ], + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "WebsiteConfiguration": { + "additionalProperties": false, + "description": "Specifies website configuration parameters for an Amazon S3 bucket.", + "properties": { + "ErrorDocument": { + "description": "The name of the error document for the website.", + "type": "string" + }, + "IndexDocument": { + "description": "The name of the index document for the website.", + "type": "string" + }, + "RedirectAllRequestsTo": { + "$ref": "#/definitions/RedirectAllRequestsTo" + }, + "RoutingRules": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/RoutingRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "iso8601UTC": { + "description": "The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ)", + "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" + } + }, + "description": "Resource Type definition for AWS::S3::Bucket", + "handlers": { + "create": { + "permissions": [ + "s3:CreateBucket", + "s3:PutBucketTagging", + "s3:PutAnalyticsConfiguration", + "s3:PutEncryptionConfiguration", + "s3:PutBucketCORS", + "s3:PutInventoryConfiguration", + "s3:PutLifecycleConfiguration", + "s3:PutMetricsConfiguration", + "s3:PutBucketNotification", + "s3:PutBucketReplication", + "s3:PutBucketWebsite", + "s3:PutAccelerateConfiguration", + "s3:PutBucketPublicAccessBlock", + "s3:PutReplicationConfiguration", + "s3:PutObjectAcl", + "s3:PutBucketObjectLockConfiguration", + "s3:GetBucketAcl", + "s3:ListBucket", + "iam:PassRole", + "s3:DeleteObject", + "s3:PutBucketLogging", + "s3:PutBucketVersioning", + "s3:PutObjectLockConfiguration", + "s3:PutBucketOwnershipControls", + "s3:PutIntelligentTieringConfiguration" + ] + }, + "delete": { + "permissions": [ + "s3:DeleteBucket", + "s3:ListBucket" + ] + }, + "list": { + "permissions": [ + "s3:ListAllMyBuckets" + ] + }, + "read": { + "permissions": [ + "s3:GetAccelerateConfiguration", + "s3:GetLifecycleConfiguration", + "s3:GetBucketPublicAccessBlock", + "s3:GetAnalyticsConfiguration", + "s3:GetBucketCORS", + "s3:GetEncryptionConfiguration", + "s3:GetInventoryConfiguration", + "s3:GetBucketLogging", + "s3:GetMetricsConfiguration", + "s3:GetBucketNotification", + "s3:GetBucketVersioning", + "s3:GetReplicationConfiguration", + "S3:GetBucketWebsite", + "s3:GetBucketPublicAccessBlock", + "s3:GetBucketObjectLockConfiguration", + "s3:GetBucketTagging", + "s3:GetBucketOwnershipControls", + "s3:GetIntelligentTieringConfiguration", + "s3:ListBucket" + ] + }, + "update": { + "permissions": [ + "s3:PutBucketAcl", + "s3:PutBucketTagging", + "s3:PutAnalyticsConfiguration", + "s3:PutEncryptionConfiguration", + "s3:PutBucketCORS", + "s3:PutInventoryConfiguration", + "s3:PutLifecycleConfiguration", + "s3:PutMetricsConfiguration", + "s3:PutBucketNotification", + "s3:PutBucketReplication", + "s3:PutBucketWebsite", + "s3:PutAccelerateConfiguration", + "s3:PutBucketPublicAccessBlock", + "s3:PutReplicationConfiguration", + "s3:PutBucketOwnershipControls", + "s3:PutIntelligentTieringConfiguration", + "s3:DeleteBucketWebsite", + "s3:PutBucketLogging", + "s3:PutBucketVersioning", + "s3:PutObjectLockConfiguration", + "s3:PutBucketObjectLockConfiguration", + "s3:DeleteBucketAnalyticsConfiguration", + "s3:DeleteBucketCors", + "s3:DeleteBucketMetricsConfiguration", + "s3:DeleteBucketEncryption", + "s3:DeleteBucketLifecycle", + "s3:DeleteBucketReplication", + "iam:PassRole", + "s3:ListBucket" + ] + } + }, + "primaryIdentifier": [ + "/properties/BucketName" + ], + "properties": { + "AccelerateConfiguration": { + "$ref": "#/definitions/AccelerateConfiguration", + "description": "Configuration for the transfer acceleration state." + }, + "AccessControl": { + "description": "A canned access control list (ACL) that grants predefined permissions to the bucket.", + "enum": [ + "AuthenticatedRead", + "AwsExecRead", + "BucketOwnerFullControl", + "BucketOwnerRead", + "LogDeliveryWrite", + "Private", + "PublicRead", + "PublicReadWrite" + ], + "type": "string" + }, + "AnalyticsConfigurations": { + "description": "The configuration and any analyses for the analytics filter of an Amazon S3 bucket.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/AnalyticsConfiguration" + }, + "type": "array", + "uniqueItems": true + }, + "Arn": { + "$ref": "#/definitions/Arn", + "description": "The Amazon Resource Name (ARN) of the specified bucket.", + "examples": [ + "arn:aws:s3:::mybucket" + ] + }, + "BucketEncryption": { + "$ref": "#/definitions/BucketEncryption" + }, + "BucketName": { + "description": "A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][a-z0-9.-]*[a-z0-9]$", + "type": "string" + }, + "CorsConfiguration": { + "$ref": "#/definitions/CorsConfiguration", + "description": "Rules that define cross-origin resource sharing of objects in this bucket." + }, + "DomainName": { + "description": "The IPv4 DNS name of the specified bucket.", + "examples": [ + "mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com" + ], + "type": "string" + }, + "DualStackDomainName": { + "description": "The IPv6 DNS name of the specified bucket. For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html).", + "examples": [ + "mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com" + ], + "type": "string" + }, + "IntelligentTieringConfigurations": { + "description": "Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/IntelligentTieringConfiguration" + }, + "type": "array", + "uniqueItems": true + }, + "InventoryConfigurations": { + "description": "The inventory configuration for an Amazon S3 bucket.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/InventoryConfiguration" + }, + "type": "array", + "uniqueItems": true + }, + "LifecycleConfiguration": { + "$ref": "#/definitions/LifecycleConfiguration", + "description": "Rules that define how Amazon S3 manages objects during their lifetime." + }, + "LoggingConfiguration": { + "$ref": "#/definitions/LoggingConfiguration", + "description": "Settings that define where logs are stored." + }, + "MetricsConfigurations": { + "description": "Settings that define a metrics configuration for the CloudWatch request metrics from the bucket.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/MetricsConfiguration" + }, + "type": "array", + "uniqueItems": true + }, + "NotificationConfiguration": { + "$ref": "#/definitions/NotificationConfiguration", + "description": "Configuration that defines how Amazon S3 handles bucket notifications." + }, + "ObjectLockConfiguration": { + "$ref": "#/definitions/ObjectLockConfiguration", + "description": "Places an Object Lock configuration on the specified bucket." + }, + "ObjectLockEnabled": { + "description": "Indicates whether this bucket has an Object Lock configuration enabled.", + "type": "boolean" + }, + "OwnershipControls": { + "$ref": "#/definitions/OwnershipControls", + "description": "Specifies the container element for object ownership rules." + }, + "PublicAccessBlockConfiguration": { + "$ref": "#/definitions/PublicAccessBlockConfiguration" + }, + "RegionalDomainName": { + "description": "Returns the regional domain name of the specified bucket.", + "examples": [ + "mystack-mybucket-kdwwxmddtr2g.s3.us-east-2.amazonaws.com" + ], + "type": "string" + }, + "ReplicationConfiguration": { + "$ref": "#/definitions/ReplicationConfiguration", + "description": "Configuration for replicating objects in an S3 bucket." + }, + "Tags": { + "description": "An arbitrary set of tags (key-value pairs) for this S3 bucket.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VersioningConfiguration": { + "$ref": "#/definitions/VersioningConfiguration" + }, + "WebsiteConfiguration": { + "$ref": "#/definitions/WebsiteConfiguration" + }, + "WebsiteURL": { + "description": "The Amazon S3 website endpoint for the specified bucket.", + "examples": [ + "Example (IPv4): http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/", + "Example (IPv6): http://mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/" + ], + "format": "uri", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DomainName", + "/properties/DualStackDomainName", + "/properties/RegionalDomainName", + "/properties/WebsiteURL" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::S3::Bucket", + "writeOnlyProperties": [ + "/properties/AccessControl", + "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionExpirationInDays", + "/properties/LifecycleConfiguration/Rules/*/NoncurrentVersionTransition", + "/properties/LifecycleConfiguration/Rules/*/Transition", + "/properties/ReplicationConfiguration/Rules/*/Prefix", + "/properties/LifecycleConfiguration/Rules/*/ExpiredObjectDeleteMarker" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-app.json deleted file mode 100644 index da6e3f4330..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-app.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AppName", - "/properties/AppType", - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/Tags", - "/properties/ResourceSpec" - ], - "definitions": { - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "SageMakerImageArn": { - "description": "The ARN of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "minLength": 1, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The ARN of the image version created on the instance.", - "maxLength": 256, - "minLength": 1, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "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" - } - }, - "description": "Resource Type definition for AWS::SageMaker::App", - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:DescribeApp" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteApp" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListApps" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeApp" - ] - } - }, - "primaryIdentifier": [ - "/properties/AppName", - "/properties/AppType", - "/properties/DomainId", - "/properties/UserProfileName" - ], - "properties": { - "AppArn": { - "description": "The Amazon Resource Name (ARN) of the app.", - "maxLength": 256, - "minLength": 1, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", - "type": "string" - }, - "AppName": { - "description": "The name of the app.", - "maxLength": 63, - "minLength": 1, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "AppType": { - "description": "The type of app.", - "enum": [ - "JupyterServer", - "KernelGateway", - "RStudioServerPro", - "RSessionGateway", - "Canvas" - ], - "type": "string" - }, - "DomainId": { - "description": "The domain ID.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "ResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance." - }, - "Tags": { - "description": "A list of tags to apply to the app.", - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileName": { - "description": "The user profile name.", - "maxLength": 63, - "minLength": 1, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AppArn" - ], - "required": [ - "AppName", - "AppType", - "DomainId", - "UserProfileName" - ], - "typeName": "AWS::SageMaker::App", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-domain.json deleted file mode 100644 index 1948e2768f..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-domain.json +++ /dev/null @@ -1,575 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AppNetworkAccessType", - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/SubnetIds", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CustomImage": { - "additionalProperties": false, - "description": "A custom SageMaker image.", - "properties": { - "AppImageConfigName": { - "description": "The Name of the AppImageConfig.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "description": "The name of the CustomImage. Must be unique to your account.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "description": "The version number of the CustomImage.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", - "properties": { - "ExecutionRole": { - "description": "The execution role for the space.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DomainSettings": { - "additionalProperties": false, - "description": "A collection of Domain settings.", - "properties": { - "RStudioServerProDomainSettings": { - "$ref": "#/definitions/RStudioServerProDomainSettings" - }, - "SecurityGroupIds": { - "description": "The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 3, - "minItems": 1, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "description": "The JupyterServer app settings.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "description": "The kernel gateway app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." - } - }, - "type": "object" - }, - "RSessionAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to an RSessionGateway app.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", - "properties": { - "AccessStatus": { - "description": "Indicates whether the current user has access to the RStudioServerPro app.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "RStudioServerProDomainSettings": { - "additionalProperties": false, - "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "DomainExecutionRoleArn": { - "description": "The ARN of the execution role for the RStudioServerPro Domain-level app.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "RStudioConnectUrl": { - "description": "A URL pointing to an RStudio Connect server.", - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - }, - "RStudioPackageManagerUrl": { - "description": "A URL pointing to an RStudio Package Manager server.", - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - } - }, - "required": [ - "DomainExecutionRoleArn" - ], - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "LifecycleConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "SageMakerImageArn": { - "description": "The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The Amazon Resource Name (ARN) of the image version created on the instance.", - "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, - "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", - "properties": { - "NotebookOutputOption": { - "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "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" - }, - "UserSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", - "properties": { - "ExecutionRole": { - "description": "The execution role for the user.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "RSessionAppSettings": { - "$ref": "#/definitions/RSessionAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings", - "description": "The sharing settings." - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SageMaker::Domain", - "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": { - "description": "Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.", - "enum": [ - "PublicInternetOnly", - "VpcOnly" - ], - "type": "string" - }, - "AppSecurityGroupManagement": { - "description": "The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.", - "enum": [ - "Service", - "Customer" - ], - "type": "string" - }, - "AuthMode": { - "description": "The mode of authentication that members use to access the domain.", - "enum": [ - "SSO", - "IAM" - ], - "type": "string" - }, - "DefaultSpaceSettings": { - "$ref": "#/definitions/DefaultSpaceSettings", - "description": "The default space settings." - }, - "DefaultUserSettings": { - "$ref": "#/definitions/UserSettings", - "description": "The default user settings." - }, - "DomainArn": { - "description": "The Amazon Resource Name (ARN) of the created domain.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", - "type": "string" - }, - "DomainId": { - "description": "The domain name.", - "maxLength": 63, - "pattern": "^d-(-*[a-z0-9])+", - "type": "string" - }, - "DomainName": { - "description": "A name for the domain.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "DomainSettings": { - "$ref": "#/definitions/DomainSettings" - }, - "HomeEfsFileSystemId": { - "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.", - "maxLength": 32, - "type": "string" - }, - "KmsKeyId": { - "description": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "SecurityGroupIdForDomainBoundary": { - "description": "The ID of the security group that authorizes traffic between the RSessionGateway apps and the RStudioServerPro app.", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "SingleSignOnManagedApplicationInstanceId": { - "description": "The SSO managed application instance ID.", - "maxLength": 256, - "type": "string" - }, - "SubnetIds": { - "description": "The VPC subnets that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "description": "A list of tags to apply to the user profile.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "Url": { - "description": "The URL to the created domain.", - "maxLength": 1024, - "type": "string" - }, - "VpcId": { - "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/DomainArn", - "/properties/Url", - "/properties/DomainId", - "/properties/HomeEfsFileSystemId", - "/properties/SecurityGroupIdForDomainBoundary", - "/properties/SingleSignOnManagedApplicationInstanceId" - ], - "required": [ - "AuthMode", - "DefaultUserSettings", - "DomainName", - "SubnetIds", - "VpcId" - ], - "typeName": "AWS::SageMaker::Domain", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-model.json new file mode 100644 index 0000000000..0eff60b77a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-model.json @@ -0,0 +1,230 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "type": "object" + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SageMaker::Model", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-userprofile.json deleted file mode 100644 index 8d20becfab..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-sagemaker-userprofile.json +++ /dev/null @@ -1,368 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/SingleSignOnUserIdentifier", - "/properties/SingleSignOnUserValue", - "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", - "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", - "/properties/Tags" - ], - "definitions": { - "CustomImage": { - "additionalProperties": false, - "description": "A custom SageMaker image.", - "properties": { - "AppImageConfigName": { - "description": "The Name of the AppImageConfig.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "description": "The name of the CustomImage. Must be unique to your account.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "description": "The version number of the CustomImage.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "description": "The JupyterServer app settings.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "description": "The kernel gateway app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", - "properties": { - "AccessStatus": { - "description": "Indicates whether the current user has access to the RStudioServerPro app.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "SageMakerImageArn": { - "description": "The ARN of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The ARN of the image version created on the instance.", - "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, - "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", - "properties": { - "NotebookOutputOption": { - "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "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" - }, - "UserSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", - "properties": { - "ExecutionRole": { - "description": "The user profile Amazon Resource Name (ARN).", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings", - "description": "The sharing settings." - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SageMaker::UserProfile", - "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": { - "description": "The ID of the associated Domain.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "SingleSignOnUserIdentifier": { - "description": "A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is \"UserName\". If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified.", - "pattern": "UserName", - "type": "string" - }, - "SingleSignOnUserValue": { - "description": "The username of the associated AWS Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified.", - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "description": "A list of tags to apply to the user profile.", - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileArn": { - "description": "The user profile Amazon Resource Name (ARN).", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", - "type": "string" - }, - "UserProfileName": { - "description": "A name for the UserProfile.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "UserSettings": { - "$ref": "#/definitions/UserSettings", - "description": "A collection of settings.", - "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/cn_northwest_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py index e3f86d5d67..8b2905bed3 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -57,6 +57,7 @@ "AWS::EKS::FargateProfile", "AWS::EC2::TransitGatewayRouteTable", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::ElastiCache::SecurityGroup", "AWS::OpsWorks::Layer", "AWS::KinesisFirehose::DeliveryStream", @@ -266,6 +267,7 @@ "AWS::SecretsManager::ResourcePolicy", "AWS::Config::ConfigRule", "AWS::IoT::SoftwarePackageVersion", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::GuardDuty::ThreatIntelSet", @@ -463,6 +465,7 @@ "AWS::StepFunctions::StateMachine", "AWS::RDS::DBClusterParameterGroup", "AWS::WAF::XssMatchSet", + "AWS::IoT::CertificateProvider", "AWS::AppStream::DirectoryConfig", "AWS::EventSchemas::RegistryPolicy", "AWS::EventSchemas::Registry", @@ -631,6 +634,7 @@ "aws-autoscaling-autoscalinggroup.json", "aws-ec2-transitgatewayroutetable.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-elasticache-securitygroup.json", "aws-opsworks-layer.json", "aws-kinesisfirehose-deliverystream.json", @@ -655,6 +659,7 @@ "aws-ec2-vpcendpointconnectionnotification.json", "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-route53resolver-resolverruleassociation.json", @@ -693,6 +698,7 @@ "aws-cloudtrail-trail.json", "aws-gamelift-gameservergroup.json", "aws-ec2-internetgateway.json", + "aws-ec2-gatewayroutetableassociation.json", "aws-ssm-document.json", "aws-iam-role.json", "aws-events-apidestination.json", @@ -710,6 +716,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -721,14 +728,15 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-elasticache-parametergroup.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-cloudformation-stackset.json", + "aws-ec2-route.json", "aws-codecommit-repository.json", "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-wafv2-loggingconfiguration.json", - "aws-dynamodb-globaltable.json", "aws-backup-backupplan.json", "aws-imagebuilder-distributionconfiguration.json", "aws-lakeformation-permissions.json", @@ -811,6 +819,7 @@ "aws-secretsmanager-resourcepolicy.json", "aws-config-configrule.json", "aws-iot-softwarepackageversion.json", + "aws-imagebuilder-workflow.json", "aws-appsync-apikey.json", "aws-ec2-vpc.json", "aws-msk-vpcconnection.json", @@ -829,7 +838,6 @@ "aws-backup-backupvault.json", "aws-iam-grouppolicy.json", "aws-waf-bytematchset.json", - "aws-emrserverless-application.json", "aws-ec2-host.json", "aws-dms-replicationtask.json", "aws-ec2-routetable.json", @@ -847,6 +855,7 @@ "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-ec2-snapshotblockpublicaccess.json", + "aws-ec2-subnet.json", "aws-s3objectlambda-accesspoint.json", "aws-waf-rule.json", "aws-elasticbeanstalk-configurationtemplate.json", @@ -875,6 +884,7 @@ "aws-iot-custommetric.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-apigatewayv2-domainname.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", @@ -970,6 +980,7 @@ "aws-stepfunctions-statemachine.json", "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", + "aws-iot-certificateprovider.json", "aws-eventschemas-registrypolicy.json", "aws-eventschemas-registry.json", "aws-config-remediationconfiguration.json", @@ -1006,6 +1017,7 @@ "aws-directoryservice-microsoftad.json", "aws-appsync-sourceapiassociation.json", "aws-datasync-locationobjectstorage.json", + "aws-ecs-capacityprovider.json", "aws-elasticache-cachecluster.json", "aws-sagemaker-modelcard.json", "aws-logs-destination.json", @@ -1064,6 +1076,7 @@ "aws-apigatewayv2-stage.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-batch-jobqueue.json", "aws-cloudformation-waitconditionhandle.json", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-route.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-route.json deleted file mode 100644 index 722dba73ff..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-route.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RouteTableId", - "/properties/DestinationCidrBlock", - "/properties/DestinationIpv6CidrBlock", - "/properties/DestinationPrefixListId" - ], - "description": "Resource Type definition for AWS::EC2::Route", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteRoute", - "ec2:DescribeRouteTables" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "RouteTableId": { - "$ref": "resource-schema.json#/properties/RouteTableId" - } - }, - "required": [ - "RouteTableId" - ] - }, - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - } - }, - "primaryIdentifier": [ - "/properties/RouteTableId", - "/properties/CidrBlock" - ], - "properties": { - "CarrierGatewayId": { - "description": "The ID of the carrier gateway.", - "type": "string" - }, - "CidrBlock": { - "description": "The primary identifier of the resource generated by the service.", - "type": "string" - }, - "DestinationCidrBlock": { - "description": "The IPv4 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "description": "The IPv6 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationPrefixListId": { - "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "description": "The ID of the egress-only internet gateway.", - "type": "string" - }, - "GatewayId": { - "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", - "type": "string" - }, - "InstanceId": { - "description": "The ID of a NAT instance in your VPC.", - "type": "string" - }, - "LocalGatewayId": { - "description": "The ID of the local gateway.", - "type": "string" - }, - "NatGatewayId": { - "description": "The ID of a NAT gateway.", - "type": "string" - }, - "NetworkInterfaceId": { - "description": "The ID of the network interface.", - "type": "string" - }, - "RouteTableId": { - "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", - "type": "string" - }, - "TransitGatewayId": { - "description": "The ID of a transit gateway.", - "type": "string" - }, - "VpcEndpointId": { - "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", - "type": "string" - }, - "VpcPeeringConnectionId": { - "description": "The ID of a VPC peering connection.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CidrBlock" - ], - "required": [ - "RouteTableId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", - "tagging": { - "taggable": false - }, - "typeName": "AWS::EC2::Route" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-capacityprovider.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-capacityprovider.json deleted file mode 100644 index 4149de6605..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ecs-capacityprovider.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AutoScalingGroupProvider/AutoScalingGroupArn", - "/properties/Name" - ], - "definitions": { - "AutoScalingGroupProvider": { - "additionalProperties": false, - "properties": { - "AutoScalingGroupArn": { - "type": "string" - }, - "ManagedScaling": { - "$ref": "#/definitions/ManagedScaling" - }, - "ManagedTerminationProtection": { - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - } - }, - "required": [ - "AutoScalingGroupArn" - ], - "type": "object" - }, - "ManagedScaling": { - "additionalProperties": false, - "description": "The managed scaling settings for the Auto Scaling group capacity provider.", - "properties": { - "InstanceWarmupPeriod": { - "type": "integer" - }, - "MaximumScalingStepSize": { - "type": "integer" - }, - "MinimumScalingStepSize": { - "type": "integer" - }, - "Status": { - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "TargetCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "minLength": 1, - "type": "string" - }, - "Value": { - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::ECS::CapacityProvider.", - "handlers": { - "create": { - "permissions": [ - "autoscaling:CreateOrUpdateTags", - "ecs:CreateCapacityProvider", - "ecs:DescribeCapacityProviders" - ] - }, - "delete": { - "permissions": [ - "ecs:DescribeCapacityProviders", - "ecs:DeleteCapacityProvider" - ] - }, - "list": { - "permissions": [ - "ecs:DescribeCapacityProviders" - ] - }, - "read": { - "permissions": [ - "ecs:DescribeCapacityProviders" - ] - }, - "update": { - "permissions": [ - "ecs:UpdateCapacityProvider", - "ecs:DescribeCapacityProviders", - "ecs:ListTagsForResource", - "ecs:TagResource", - "ecs:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "AutoScalingGroupProvider": { - "$ref": "#/definitions/AutoScalingGroupProvider" - }, - "Name": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "propertyTransform": { - "/properties/AutoScalingGroupProvider/AutoScalingGroupArn": "$split(AutoScalingGroupProvider.AutoScalingGroupArn, \"autoScalingGroupName/\")[-1]" - }, - "required": [ - "AutoScalingGroupProvider" - ], - "typeName": "AWS::ECS::CapacityProvider" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-efs-filesystem.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-efs-filesystem.json index 72c3f846c2..e0e31b9afd 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-efs-filesystem.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-efs-filesystem.json @@ -48,7 +48,10 @@ "AFTER_30_DAYS", "AFTER_60_DAYS", "AFTER_90_DAYS", - "AFTER_1_DAY" + "AFTER_1_DAY", + "AFTER_180_DAYS", + "AFTER_270_DAYS", + "AFTER_365_DAYS" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-emrserverless-application.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-emrserverless-application.json new file mode 100644 index 0000000000..b2cb33ba91 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-emrserverless-application.json @@ -0,0 +1,553 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Architecture", + "/properties/ReleaseLabel", + "/properties/WorkerTypeSpecifications", + "/properties/MaximumCapacity", + "/properties/InitialCapacity", + "/properties/AutoStartConfiguration", + "/properties/AutoStopConfiguration", + "/properties/NetworkConfiguration", + "/properties/ImageConfiguration", + "/properties/MonitoringConfiguration", + "/properties/RuntimeConfiguration" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type" + ], + "definitions": { + "Architecture": { + "description": "The cpu architecture of an application.", + "enum": [ + "ARM64", + "X86_64" + ], + "type": "string" + }, + "AutoStartConfiguration": { + "additionalProperties": false, + "description": "Configuration for Auto Start of Application", + "properties": { + "Enabled": { + "default": true, + "description": "If set to true, the Application will automatically start. Defaults to true.", + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "AutoStopConfiguration": { + "additionalProperties": false, + "description": "Configuration for Auto Stop of Application", + "properties": { + "Enabled": { + "default": true, + "description": "If set to true, the Application will automatically stop after being idle. Defaults to true.", + "type": "boolean" + }, + "IdleTimeoutMinutes": { + "description": "The amount of time [in minutes] to wait before auto stopping the Application when idle. Defaults to 15 minutes.", + "type": "integer" + } + }, + "required": [], + "type": "object" + }, + "Classification": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "ConfigurationList": { + "description": "Runtime configuration for batch and interactive JobRun.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ConfigurationObject" + }, + "type": "array", + "uniqueItems": true + }, + "ConfigurationObject": { + "additionalProperties": false, + "description": "Configuration for a JobRun.", + "properties": { + "Classification": { + "$ref": "#/definitions/Classification", + "description": "String with a maximum length of 1024." + }, + "Configurations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ConfigurationObject" + }, + "type": "array", + "uniqueItems": true + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z]+[-a-zA-Z0-9_.]*$": { + "$ref": "#/definitions/SensitivePropertiesMap" + } + }, + "type": "object" + } + }, + "required": [ + "Classification" + ], + "type": "object" + }, + "CpuSize": { + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(vCPU|vcpu|VCPU)?$", + "type": "string" + }, + "DiskSize": { + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)$", + "type": "string" + }, + "EncryptionKeyArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):kms:[a-zA-Z0-9\\-]*:(\\d{12})?:key\\/[a-zA-Z0-9-]+$", + "type": "string" + }, + "ImageConfigurationInput": { + "additionalProperties": false, + "description": "The image configuration.", + "properties": { + "ImageUri": { + "description": "The URI of an image in the Amazon ECR registry. This field is required when you create a new application. If you leave this field blank in an update, Amazon EMR will remove the image configuration.", + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-z0-9]+[a-z0-9-.]*)\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(?:\\:([a-zA-Z0-9_][a-zA-Z0-9-._]{0,299})|@(sha256:[0-9a-f]{64}))$", + "type": "string" + } + }, + "type": "object" + }, + "InitialCapacityConfig": { + "additionalProperties": false, + "properties": { + "WorkerConfiguration": { + "$ref": "#/definitions/WorkerConfiguration" + }, + "WorkerCount": { + "description": "Initial count of workers to be initialized when an Application is started. This count will be continued to be maintained until the Application is stopped", + "format": "int64", + "maximum": 1000000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "WorkerCount", + "WorkerConfiguration" + ], + "type": "object" + }, + "InitialCapacityConfigKeyValuePair": { + "additionalProperties": false, + "properties": { + "Key": { + "description": "Worker type for an analytics framework.", + "maxLength": 50, + "minLength": 1, + "pattern": "^[a-zA-Z]+[-_]*[a-zA-Z]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/InitialCapacityConfig" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "InitialCapacityConfigMap": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InitialCapacityConfigKeyValuePair" + }, + "type": "array", + "uniqueItems": true + }, + "ManagedPersistenceMonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "default": true, + "description": "If set to false, managed logging will be turned off. Defaults to true.", + "type": "boolean" + }, + "EncryptionKeyArn": { + "$ref": "#/definitions/EncryptionKeyArn", + "description": "KMS key ARN to encrypt the logs stored in managed persistence" + } + } + }, + "MaximumAllowedResources": { + "additionalProperties": false, + "properties": { + "Cpu": { + "$ref": "#/definitions/CpuSize", + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional." + }, + "Disk": { + "$ref": "#/definitions/DiskSize", + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional" + }, + "Memory": { + "$ref": "#/definitions/MemorySize", + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional." + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "MemorySize": { + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)?$", + "type": "string" + }, + "MonitoringConfiguration": { + "additionalProperties": false, + "description": "Monitoring configuration for batch and interactive JobRun.", + "properties": { + "ManagedPersistenceMonitoringConfiguration": { + "$ref": "#/definitions/ManagedPersistenceMonitoringConfiguration", + "description": "Managed log persistence configurations for a JobRun." + }, + "S3MonitoringConfiguration": { + "$ref": "#/definitions/S3MonitoringConfiguration", + "description": "S3 monitoring configurations for a JobRun." + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "description": "The ID of the security groups in the VPC to which you want to connect your job or application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "description": "The ID of the subnets in the VPC to which you want to connect your job or application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [], + "type": "object" + }, + "S3MonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionKeyArn": { + "$ref": "#/definitions/EncryptionKeyArn", + "description": "KMS key ARN to encrypt the logs stored in given s3" + }, + "LogUri": { + "$ref": "#/definitions/UriString" + } + } + }, + "SecurityGroupId": { + "description": "Identifier of a security group", + "maxLength": 32, + "minLength": 1, + "pattern": "^[-0-9a-zA-Z]+", + "type": "string" + }, + "SensitivePropertiesKeyValuePair": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SensitivePropertiesMap": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SubnetId": { + "description": "Identifier of a subnet", + "maxLength": 32, + "minLength": 1, + "pattern": "^[-0-9a-zA-Z]+", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The value for the tag. You can specify a value that is 1 to 128 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9 /_.:=+@-]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 /_.:=+@-]*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UriString": { + "maxLength": 10280, + "minLength": 1, + "pattern": "[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\r\\n\\t]*", + "type": "string" + }, + "WorkerConfiguration": { + "additionalProperties": false, + "properties": { + "Cpu": { + "$ref": "#/definitions/CpuSize", + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional." + }, + "Disk": { + "$ref": "#/definitions/DiskSize", + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional" + }, + "Memory": { + "$ref": "#/definitions/MemorySize", + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional." + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "WorkerTypeSpecificationInput": { + "additionalProperties": false, + "description": "The specifications for a worker type.", + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/ImageConfigurationInput" + } + }, + "type": "object" + }, + "WorkerTypeSpecificationInputMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z]+[-_]*[a-zA-Z]+$": { + "$ref": "#/definitions/WorkerTypeSpecificationInput" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::EMRServerless::Application Type", + "handlers": { + "create": { + "permissions": [ + "kms:Create*", + "kms:Describe*", + "kms:Enable*", + "kms:List*", + "kms:Put*", + "kms:Update*", + "kms:Revoke*", + "kms:Disable*", + "kms:Get*", + "kms:Delete*", + "kms:ScheduleKeyDeletion", + "kms:CancelKeyDeletion", + "kms:GenerateDataKey", + "kms:TagResource", + "kms:UntagResource", + "kms:Decrypt", + "emr-serverless:CreateApplication", + "emr-serverless:TagResource", + "emr-serverless:GetApplication", + "iam:CreateServiceLinkedRole", + "ec2:CreateNetworkInterface", + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetDownloadUrlForLayer" + ] + }, + "delete": { + "permissions": [ + "emr-serverless:DeleteApplication", + "emr-serverless:GetApplication" + ] + }, + "list": { + "permissions": [ + "emr-serverless:ListApplications" + ] + }, + "read": { + "permissions": [ + "emr-serverless:GetApplication" + ] + }, + "update": { + "permissions": [ + "emr-serverless:UpdateApplication", + "emr-serverless:TagResource", + "emr-serverless:UntagResource", + "emr-serverless:GetApplication", + "ec2:CreateNetworkInterface", + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetDownloadUrlForLayer", + "kms:Create*", + "kms:Describe*", + "kms:Enable*", + "kms:List*", + "kms:Put*", + "kms:Update*", + "kms:Revoke*", + "kms:Disable*", + "kms:Get*", + "kms:Delete*", + "kms:ScheduleKeyDeletion", + "kms:CancelKeyDeletion", + "kms:GenerateDataKey", + "kms:TagResource", + "kms:UntagResource", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApplicationId" + ], + "properties": { + "ApplicationId": { + "description": "The ID of the EMR Serverless Application.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Architecture": { + "$ref": "#/definitions/Architecture" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the EMR Serverless Application.", + "type": "string" + }, + "AutoStartConfiguration": { + "$ref": "#/definitions/AutoStartConfiguration", + "description": "Configuration for Auto Start of Application." + }, + "AutoStopConfiguration": { + "$ref": "#/definitions/AutoStopConfiguration", + "description": "Configuration for Auto Stop of Application." + }, + "ImageConfiguration": { + "$ref": "#/definitions/ImageConfigurationInput" + }, + "InitialCapacity": { + "$ref": "#/definitions/InitialCapacityConfigMap", + "description": "Initial capacity initialized when an Application is started." + }, + "MaximumCapacity": { + "$ref": "#/definitions/MaximumAllowedResources", + "description": "Maximum allowed cumulative resources for an Application. No new resources will be created once the limit is hit." + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/MonitoringConfiguration" + }, + "Name": { + "description": "User friendly Application name.", + "maxLength": 64, + "minLength": 1, + "pattern": "^[A-Za-z0-9._\\/#-]+$", + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration", + "description": "Network Configuration for customer VPC connectivity." + }, + "ReleaseLabel": { + "description": "EMR release label.", + "maxLength": 64, + "minLength": 1, + "pattern": "^[A-Za-z0-9._/-]+$", + "type": "string" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/ConfigurationList" + }, + "Tags": { + "description": "Tag map with key and value", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "description": "The type of the application", + "type": "string" + }, + "WorkerTypeSpecifications": { + "$ref": "#/definitions/WorkerTypeSpecificationInputMap", + "description": "The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types." + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ApplicationId" + ], + "required": [ + "ReleaseLabel", + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "taggable": true + }, + "typeName": "AWS::EMRServerless::Application" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-securityhub-hub.json deleted file mode 100644 index b0401a5225..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-securityhub-hub.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "additionalProperties": false, - "description": "Resource Type definition for AWS::SecurityHub::Hub", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutoEnableControls": { - "type": "boolean" - }, - "ControlFindingGenerator": { - "type": "string" - }, - "EnableDefaultStandards": { - "type": "boolean" - }, - "Id": { - "type": "string" - }, - "Tags": { - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecurityHub::Hub" -} 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 45d456b0fb..93868925d5 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py @@ -120,6 +120,7 @@ "AWS::Route53::RecordSet", "AWS::MediaStore::Container", "AWS::IoTAnalytics::Datastore", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::IVS::StreamKey", "AWS::ElastiCache::SecurityGroup", @@ -197,6 +198,7 @@ "AWS::Transfer::Workflow", "AWS::QLDB::Ledger", "AWS::S3::AccessGrant", + "AWS::NeptuneGraph::PrivateGraphEndpoint", "AWS::AppConfig::DeploymentStrategy", "AWS::Glue::DevEndpoint", "AWS::SageMaker::ModelPackage", @@ -403,6 +405,7 @@ "AWS::CodeStarConnections::Connection", "AWS::IoT::SecurityProfile", "AWS::Events::EventBus", + "AWS::DocDB::EventSubscription", "AWS::SQS::QueueInlinePolicy", "AWS::Organizations::Organization", "AWS::AutoScalingPlans::ScalingPlan", @@ -412,6 +415,7 @@ "AWS::AppStream::ImageBuilder", "AWS::BackupGateway::Hypervisor", "AWS::Lightsail::Disk", + "AWS::Connect::PredefinedAttribute", "AWS::IAM::Policy", "AWS::DataBrew::Schedule", "AWS::AppRunner::Service", @@ -427,6 +431,7 @@ "AWS::RoboMaker::Fleet", "AWS::EC2::VolumeAttachment", "AWS::Glue::SecurityConfiguration", + "AWS::NetworkFirewall::TLSInspectionConfiguration", "AWS::OpenSearchServerless::Collection", "AWS::DataBrew::Ruleset", "AWS::GameLift::MatchmakingConfiguration", @@ -495,6 +500,7 @@ "AWS::ServiceCatalog::LaunchRoleConstraint", "AWS::IoT::RoleAlias", "AWS::SageMaker::ModelBiasJobDefinition", + "AMZN::SDC::Deployment", "AWS::SecretsManager::ResourcePolicy", "AWS::CloudFormation::HookDefaultVersion", "AWS::Config::ConfigRule", @@ -548,6 +554,7 @@ "AWS::CodeStarConnections::SyncConfiguration", "AWS::EC2::NetworkInterfaceAttachment", "AWS::EC2::TransitGatewayAttachment", + "AWS::Glue::CustomEntityType", "AWS::Wisdom::KnowledgeBase", "AWS::Cognito::UserPoolUser", "AWS::Connect::ContactFlowModule", @@ -613,6 +620,7 @@ "AWS::WAF::Rule", "AWS::ElasticBeanstalk::ConfigurationTemplate", "AWS::SQS::QueuePolicy", + "AWS::SES::ReceiptRuleSet", "AWS::AppSync::DomainNameApiAssociation", "AWS::AppSync::ApiCache", "AWS::ApiGateway::Account", @@ -624,6 +632,7 @@ "AWS::EC2::SecurityGroup", "AWS::QuickSight::Theme", "AWS::PinpointEmail::Identity", + "AWS::NeptuneGraph::Graph", "AWS::EC2::CapacityReservationFleet", "AWS::OpsWorks::Volume", "AWS::SES::EmailIdentity", @@ -693,6 +702,7 @@ "AWS::M2::Application", "AWS::SES::Template", "AWS::KMS::ReplicaKey", + "AWS::SES::ReceiptRule", "AWS::SSMContacts::Rotation", "AWS::IoTAnalytics::Dataset", "AWS::Redshift::ClusterSecurityGroup", @@ -970,6 +980,7 @@ "AWS::EMR::Studio", "AWS::EC2::InstanceConnectEndpoint", "AWS::DAX::ParameterGroup", + "AWS::SES::ReceiptFilter", "AWS::DirectoryService::MicrosoftAD", "AWS::MemoryDB::SubnetGroup", "AWS::AppSync::SourceApiAssociation", @@ -1140,7 +1151,6 @@ "aws-apigatewayv2-integration.json", "aws-pinpoint-app.json", "aws-connect-userhierarchygroup.json", - "aws-apigatewayv2-apimapping.json", "aws-ce-anomalysubscription.json", "aws-shield-drtaccess.json", "aws-sso-assignment.json", @@ -1179,7 +1189,6 @@ "aws-appconfig-extensionassociation.json", "aws-vpclattice-service.json", "aws-s3outposts-accesspoint.json", - "aws-mediapackage-originendpoint.json", "aws-ec2-ipampoolcidr.json", "aws-iot-topicruledestination.json", "aws-amplify-branch.json", @@ -1188,7 +1197,6 @@ "aws-ec2-vpcdhcpoptionsassociation.json", "aws-lightsail-bucket.json", "aws-apigateway-model.json", - "aws-apigatewayv2-integrationresponse.json", "aws-iotevents-input.json", "aws-ec2-networkacl.json", "aws-lambda-eventsourcemapping.json", @@ -1203,13 +1211,11 @@ "aws-ec2-networkaclentry.json", "aws-robomaker-simulationapplicationversion.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", - "aws-transfer-certificate.json", "aws-pinpoint-gcmchannel.json", "aws-connect-instance.json", "aws-apigateway-documentationpart.json", "aws-cloudwatch-compositealarm.json", "aws-route53resolver-firewalldomainlist.json", - "aws-redshift-endpointaccess.json", "aws-appconfig-application.json", "aws-ivschat-loggingconfiguration.json", "aws-iotwireless-wirelessgateway.json", @@ -1224,7 +1230,6 @@ "aws-autoscaling-warmpool.json", "aws-applicationautoscaling-scalabletarget.json", "aws-apprunner-autoscalingconfiguration.json", - "aws-apigatewayv2-model.json", "aws-acmpca-permission.json", "aws-neptune-dbsubnetgroup.json", "aws-cassandra-keyspace.json", @@ -1251,6 +1256,7 @@ "aws-route53-recordset.json", "aws-mediastore-container.json", "aws-iotanalytics-datastore.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-ivs-streamkey.json", "aws-elasticache-securitygroup.json", @@ -1260,7 +1266,6 @@ "aws-rekognition-collection.json", "aws-opsworks-layer.json", "aws-cloudtrail-eventdatastore.json", - "aws-kinesisfirehose-deliverystream.json", "aws-ec2-networkinsightsaccessscope.json", "aws-cognito-userpoolusertogroupattachment.json", "aws-pcaconnectorad-directoryregistration.json", @@ -1283,7 +1288,6 @@ "aws-ec2-transitgatewaymulticastgroupsource.json", "aws-pinpoint-applicationsettings.json", "aws-lex-bot.json", - "aws-transfer-profile.json", "aws-omics-workflow.json", "aws-databrew-recipe.json", "aws-gamelift-alias.json", @@ -1299,7 +1303,6 @@ "aws-docdb-dbinstance.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", - "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-appstream-appblockbuilder.json", @@ -1307,6 +1310,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1374,6 +1378,7 @@ "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", + "aws-sagemaker-app.json", "aws-ec2-vpcgatewayattachment.json", "aws-cloudtrail-trail.json", "aws-ec2-vpnconnectionroute.json", @@ -1391,19 +1396,18 @@ "aws-iam-role.json", "aws-workspacesthinclient-environment.json", "aws-dms-endpoint.json", - "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", "aws-codestarnotifications-notificationrule.json", "aws-sagemaker-endpointconfig.json", "aws-appmesh-gatewayroute.json", + "aws-cleanrooms-membership.json", "aws-apigateway-apikey.json", "aws-gamelift-location.json", "aws-networkmanager-transitgatewayroutetableattachment.json", "aws-autoscaling-launchconfiguration.json", "aws-apigateway-clientcertificate.json", - "aws-kinesisanalyticsv2-application.json", "aws-lambda-alias.json", "aws-logs-loganomalydetector.json", "aws-waf-ipset.json", @@ -1414,6 +1418,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1438,6 +1443,7 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1472,7 +1478,6 @@ "aws-ram-permission.json", "aws-datasync-task.json", "aws-ecs-taskdefinition.json", - "aws-sagemaker-model.json", "aws-quicksight-refreshschedule.json", "aws-memorydb-parametergroup.json", "aws-robomaker-robotapplicationversion.json", @@ -1513,7 +1518,6 @@ "aws-vpclattice-targetgroup.json", "aws-athena-workgroup.json", "aws-sagemaker-imageversion.json", - "aws-apigatewayv2-api.json", "aws-detective-graph.json", "aws-location-routecalculator.json", "aws-servicecatalog-portfolioshare.json", @@ -1547,10 +1551,12 @@ "aws-robomaker-fleet.json", "aws-ec2-volumeattachment.json", "aws-glue-securityconfiguration.json", + "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-opensearchserverless-collection.json", "aws-databrew-ruleset.json", "aws-gamelift-matchmakingconfiguration.json", "aws-applicationinsights-application.json", + "aws-ecs-clustercapacityproviderassociations.json", "aws-appconfig-configurationprofile.json", "aws-route53resolver-firewallrulegroup.json", "aws-docdbelastic-cluster.json", @@ -1569,6 +1575,7 @@ "aws-pinpoint-apnsvoipsandboxchannel.json", "aws-config-organizationconformancepack.json", "aws-connect-quickconnect.json", + "aws-logs-querydefinition.json", "aws-iam-instanceprofile.json", "aws-iot-billinggroup.json", "aws-iotfleetwise-decodermanifest.json", @@ -1578,6 +1585,7 @@ "aws-kinesisanalyticsv2-applicationoutput.json", "aws-ivs-recordingconfiguration.json", "aws-medialive-inputsecuritygroup.json", + "aws-sagemaker-domain.json", "aws-greengrass-coredefinitionversion.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", @@ -1598,7 +1606,6 @@ "aws-servicediscovery-instance.json", "aws-elasticsearch-domain.json", "aws-personalize-solution.json", - "aws-apigatewayv2-deployment.json", "aws-servicecatalog-stacksetconstraint.json", "aws-codestarconnections-repositorylink.json", "aws-ivs-channel.json", @@ -1612,10 +1619,10 @@ "aws-sagemaker-modelbiasjobdefinition.json", "aws-secretsmanager-resourcepolicy.json", "aws-cloudformation-hookdefaultversion.json", - "aws-config-configrule.json", "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-omics-variantstore.json", "aws-appsync-apikey.json", @@ -1650,6 +1657,7 @@ "aws-greengrass-coredefinition.json", "aws-backup-reportplan.json", "aws-pinpointemail-dedicatedippool.json", + "aws-batch-jobdefinition.json", "aws-iam-samlprovider.json", "aws-lightsail-database.json", "aws-appflow-connector.json", @@ -1695,7 +1703,6 @@ "aws-rolesanywhere-crl.json", "aws-sns-topicinlinepolicy.json", "aws-connect-evaluationform.json", - "aws-redshift-clusterparametergroup.json", "aws-organizations-policy.json", "aws-glue-trigger.json", "aws-globalaccelerator-listener.json", @@ -1720,11 +1727,11 @@ "aws-waf-rule.json", "aws-elasticbeanstalk-configurationtemplate.json", "aws-sqs-queuepolicy.json", + "aws-ses-receiptruleset.json", "aws-appsync-domainnameapiassociation.json", "aws-appsync-apicache.json", "aws-apigateway-account.json", "aws-wafv2-webacl.json", - "aws-globalaccelerator-endpointgroup.json", "aws-ec2-transitgatewayconnect.json", "aws-networkmanager-sitetositevpnattachment.json", "aws-emrcontainers-virtualcluster.json", @@ -1735,7 +1742,6 @@ "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", - "aws-events-rule.json", "aws-cloudfront-keyvaluestore.json", "aws-gamelift-gamesessionqueue.json", "aws-databrew-dataset.json", @@ -1773,15 +1779,13 @@ "aws-s3-bucketpolicy.json", "aws-appsync-graphqlschema.json", "aws-iot-custommetric.json", - "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", - "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", - "aws-transfer-agreement.json", "aws-lightsail-certificate.json", "aws-chatbot-slackchannelconfiguration.json", "aws-cloudfront-distribution.json", @@ -1816,7 +1820,6 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", - "aws-iotsitewise-gateway.json", "aws-emr-studiosessionmapping.json", "aws-ivs-playbackkeypair.json", "aws-cloudformation-macro.json", @@ -1909,6 +1912,7 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", + "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-config-conformancepack.json", @@ -1924,7 +1928,6 @@ "aws-autoscaling-scheduledaction.json", "aws-omics-sequencestore.json", "aws-cognito-identitypoolprincipaltag.json", - "aws-apigatewayv2-route.json", "aws-lakeformation-resource.json", "aws-detective-memberinvitation.json", "aws-ec2-ipamscope.json", @@ -1987,6 +1990,7 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-pinpointemail-configurationset.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", @@ -2009,8 +2013,8 @@ "aws-mediaconnect-flowvpcinterface.json", "aws-greengrass-functiondefinitionversion.json", "aws-glue-workflow.json", - "aws-apigatewayv2-authorizer.json", "aws-iot-accountauditconfiguration.json", + "aws-sagemaker-userprofile.json", "aws-personalize-dataset.json", "aws-iot1click-placement.json", "aws-ec2-prefixlist.json", @@ -2031,6 +2035,7 @@ "aws-events-endpoint.json", "aws-amazonmq-broker.json", "aws-emr-step.json", + "aws-cleanrooms-collaboration.json", "aws-ssm-association.json", "aws-ec2-clientvpnendpoint.json", "aws-cloudfront-responseheaderspolicy.json", @@ -2042,7 +2047,6 @@ "aws-xray-samplingrule.json", "aws-codeguruprofiler-profilinggroup.json", "aws-route53resolver-resolverrule.json", - "aws-transfer-connector.json", "aws-pinpoint-admchannel.json", "aws-appmesh-virtualnode.json", "aws-apigateway-documentationversion.json", @@ -2054,7 +2058,6 @@ "aws-apigateway-gatewayresponse.json", "aws-ec2-clientvpnauthorizationrule.json", "aws-ec2-enclavecertificateiamroleassociation.json", - "aws-connect-phonenumber.json", "aws-fsx-volume.json", "aws-route53resolver-outpostresolver.json", "aws-acmpca-certificate.json", @@ -2064,6 +2067,7 @@ "aws-emr-studio.json", "aws-ec2-instanceconnectendpoint.json", "aws-dax-parametergroup.json", + "aws-ses-receiptfilter.json", "aws-directoryservice-microsoftad.json", "aws-memorydb-subnetgroup.json", "aws-appsync-sourceapiassociation.json", @@ -2110,7 +2114,6 @@ "aws-rds-dbsecuritygroup.json", "aws-pinpoint-baiduchannel.json", "aws-mediapackage-channel.json", - "aws-apigatewayv2-routeresponse.json", "aws-quicksight-topic.json", "aws-cloudwatch-metricstream.json", "aws-dms-dataprovider.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/amzn-sdc-deployment.json b/src/cfnlint/data/schemas/providers/eu_central_1/amzn-sdc-deployment.json new file mode 100644 index 0000000000..7844de4096 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/amzn-sdc-deployment.json @@ -0,0 +1,47 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/S3Key" + ], + "description": "Resource Type definition for AMZN::SDC::Deployment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ConfigName": { + "type": "string" + }, + "Dimension": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PipelineId": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "TargetRegionOverride": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ConfigName", + "S3Bucket", + "S3Key", + "Stage", + "Dimension" + ], + "typeName": "AMZN::SDC::Deployment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-api.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-api.json new file mode 100644 index 0000000000..0dcd33ac15 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-api.json @@ -0,0 +1,229 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ProtocolType" + ], + "definitions": { + "BodyS3Location": { + "additionalProperties": false, + "description": "The ``BodyS3Location`` property specifies an S3 location from which to import an OpenAPI definition. Supported only for HTTP APIs.", + "properties": { + "Bucket": { + "description": "The S3 bucket that contains the OpenAPI definition to import. Required if you specify a ``BodyS3Location`` for an API.", + "type": "string" + }, + "Etag": { + "description": "The Etag of the S3 object.", + "type": "string" + }, + "Key": { + "description": "The key of the S3 object. Required if you specify a ``BodyS3Location`` for an API.", + "type": "string" + }, + "Version": { + "description": "The version of the S3 object.", + "type": "string" + } + }, + "type": "object" + }, + "Cors": { + "additionalProperties": false, + "description": "The ``Cors`` property specifies a CORS configuration for an API. Supported only for HTTP APIs. See [Configuring CORS](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) for more information.", + "properties": { + "AllowCredentials": { + "description": "Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs.", + "type": "boolean" + }, + "AllowHeaders": { + "description": "Represents a collection of allowed headers. Supported only for HTTP APIs.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AllowMethods": { + "description": "Represents a collection of allowed HTTP methods. Supported only for HTTP APIs.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AllowOrigins": { + "description": "Represents a collection of allowed origins. Supported only for HTTP APIs.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ExposeHeaders": { + "description": "Represents a collection of exposed headers. Supported only for HTTP APIs.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "MaxAge": { + "description": "The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs.", + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "The ``AWS::ApiGatewayV2::Api`` resource creates an API. WebSocket APIs and HTTP APIs are supported. For more information about WebSocket APIs, see [About WebSocket APIs in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-overview.html) in the *API Gateway Developer Guide*. For more information about HTTP APIs, see [HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html) in the *API Gateway Developer Guide.*", + "handlers": { + "create": { + "permissions": [ + "apigateway:POST", + "apigateway:PUT", + "s3:getObject" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE", + "s3:getObject" + ] + }, + "list": { + "permissions": [ + "apigateway:GET", + "s3:getObject" + ] + }, + "read": { + "permissions": [ + "apigateway:GET", + "s3:getObject" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT", + "apigateway:POST", + "s3:getObject" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId" + ], + "properties": { + "ApiEndpoint": { + "description": "", + "type": "string" + }, + "ApiId": { + "description": "", + "type": "string" + }, + "ApiKeySelectionExpression": { + "description": "An API key selection expression. Supported only for WebSocket APIs. See [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions).", + "type": "string" + }, + "BasePath": { + "description": "Specifies how to interpret the base path of the API during import. Valid values are ``ignore``, ``prepend``, and ``split``. The default value is ``ignore``. To learn more, see [Set the OpenAPI basePath Property](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api-basePath.html). Supported only for HTTP APIs.", + "type": "string" + }, + "Body": { + "description": "The OpenAPI definition. Supported only for HTTP APIs. To import an HTTP API, you must specify a ``Body`` or ``BodyS3Location``. If you specify a ``Body`` or ``BodyS3Location``, don't specify CloudFormation resources such as ``AWS::ApiGatewayV2::Authorizer`` or ``AWS::ApiGatewayV2::Route``. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources.", + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/BodyS3Location", + "description": "The S3 location of an OpenAPI definition. Supported only for HTTP APIs. To import an HTTP API, you must specify a ``Body`` or ``BodyS3Location``. If you specify a ``Body`` or ``BodyS3Location``, don't specify CloudFormation resources such as ``AWS::ApiGatewayV2::Authorizer`` or ``AWS::ApiGatewayV2::Route``. API Gateway doesn't support the combination of OpenAPI and CloudFormation resources." + }, + "CorsConfiguration": { + "$ref": "#/definitions/Cors", + "description": "A CORS configuration. Supported only for HTTP APIs. See [Configuring CORS](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) for more information." + }, + "CredentialsArn": { + "description": "This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify ``arn:aws:iam::*:user/*``. To use resource-based permissions on supported AWS services, specify ``null``. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.", + "type": "string" + }, + "Description": { + "description": "The description of the API.", + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "description": "Specifies whether clients can invoke your API by using the default ``execute-api`` endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.", + "type": "boolean" + }, + "DisableSchemaValidation": { + "description": "Avoid validating models when creating a deployment. Supported only for WebSocket APIs.", + "type": "boolean" + }, + "FailOnWarnings": { + "description": "Specifies whether to rollback the API creation when a warning is encountered. By default, API creation continues if a warning is encountered.", + "type": "boolean" + }, + "Name": { + "description": "The name of the API. Required unless you specify an OpenAPI definition for ``Body`` or ``S3BodyLocation``.", + "type": "string" + }, + "ProtocolType": { + "description": "The API protocol. Valid values are ``WEBSOCKET`` or ``HTTP``. Required unless you specify an OpenAPI definition for ``Body`` or ``S3BodyLocation``.", + "type": "string" + }, + "RouteKey": { + "description": "This property is part of quick create. If you don't specify a ``routeKey``, a default route of ``$default`` is created. The ``$default`` route acts as a catch-all for any request made to your API, for a particular stage. The ``$default`` route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs.", + "type": "string" + }, + "RouteSelectionExpression": { + "description": "The route selection expression for the API. For HTTP APIs, the ``routeSelectionExpression`` must be ``${request.method} ${request.path}``. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs.", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The collection of tags. Each tag element is associated with a given resource.", + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "Target": { + "description": "This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for HTTP APIs.", + "type": "string" + }, + "Version": { + "description": "A version identifier for the API.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/ApiEndpoint" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ApiGatewayV2::Api", + "writeOnlyProperties": [ + "/properties/BasePath", + "/properties/Body", + "/properties/BodyS3Location", + "/properties/BodyS3Location/Etag", + "/properties/BodyS3Location/Bucket", + "/properties/BodyS3Location/Version", + "/properties/BodyS3Location/Key", + "/properties/CredentialsArn", + "/properties/FailOnWarnings", + "/properties/RouteKey", + "/properties/Target", + "/properties/DisableSchemaValidation" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-apimapping.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-apimapping.json new file mode 100644 index 0000000000..96dc5aed7b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-apimapping.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName" + ], + "description": "The ``AWS::ApiGatewayV2::ApiMapping`` resource contains an API mapping. An API mapping relates a path of your custom domain name to a stage of your API. A custom domain name can have multiple API mappings, but the paths can't overlap. A custom domain can map only to APIs of the same protocol type. For more information, see [CreateApiMapping](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/domainnames-domainname-apimappings.html#CreateApiMapping) in the *Amazon API Gateway V2 API Reference*.", + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiMappingId", + "/properties/DomainName" + ], + "properties": { + "ApiId": { + "description": "The identifier of the API.", + "type": "string" + }, + "ApiMappingId": { + "description": "", + "type": "string" + }, + "ApiMappingKey": { + "description": "The API mapping key.", + "type": "string" + }, + "DomainName": { + "description": "The domain name.", + "type": "string" + }, + "Stage": { + "description": "The API stage.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ApiMappingId" + ], + "required": [ + "DomainName", + "Stage", + "ApiId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigatewayv2.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::ApiMapping" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-authorizer.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-authorizer.json new file mode 100644 index 0000000000..5cb25a3fec --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-authorizer.json @@ -0,0 +1,144 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "JWTConfiguration": { + "additionalProperties": false, + "description": "The ``JWTConfiguration`` property specifies the configuration of a JWT authorizer. Required for the ``JWT`` authorizer type. Supported only for HTTP APIs.", + "properties": { + "Audience": { + "description": "A list of the intended recipients of the JWT. A valid JWT must provide an ``aud`` that matches at least one entry in this list. See [RFC 7519](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc7519#section-4.1.3). Required for the ``JWT`` authorizer type. Supported only for HTTP APIs.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Issuer": { + "description": "The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: ``https://cognito-idp.{region}.amazonaws.com/{userPoolId}``. Required for the ``JWT`` authorizer type. Supported only for HTTP APIs.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "The ``AWS::ApiGatewayV2::Authorizer`` resource creates an authorizer for a WebSocket API or an HTTP API. To learn more, see [Controlling and managing access to a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-control-access.html) and [Controlling and managing access to an HTTP API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-access-control.html) in the *API Gateway Developer Guide*.", + "handlers": { + "create": { + "permissions": [ + "apigateway:POST", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/AuthorizerId", + "/properties/ApiId" + ], + "properties": { + "ApiId": { + "description": "The API identifier.", + "type": "string" + }, + "AuthorizerCredentialsArn": { + "description": "Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. Supported only for ``REQUEST`` authorizers.", + "type": "string" + }, + "AuthorizerId": { + "description": "", + "type": "string" + }, + "AuthorizerPayloadFormatVersion": { + "description": "Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are ``1.0`` and ``2.0``. To learn more, see [Working with Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html).", + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "description": "The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers.", + "type": "integer" + }, + "AuthorizerType": { + "description": "The authorizer type. Specify ``REQUEST`` for a Lambda function using incoming request parameters. Specify ``JWT`` to use JSON Web Tokens (supported only for HTTP APIs).", + "type": "string" + }, + "AuthorizerUri": { + "description": "The authorizer's Uniform Resource Identifier (URI). For ``REQUEST`` authorizers, this must be a well-formed Lambda function URI, for example, ``arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations``. In general, the URI has this form: ``arn:aws:apigateway:{region}:lambda:path/{service_api}``, where *{region}* is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial ``/``. For Lambda functions, this is usually of the form ``/2015-03-31/functions/[FunctionARN]/invocations``.", + "type": "string" + }, + "EnableSimpleResponses": { + "description": "Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must return an IAM policy. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see [Working with Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html).", + "type": "boolean" + }, + "IdentitySource": { + "description": "The identity source for which authorization is requested.\n For a ``REQUEST`` authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with ``$``, for example, ``$request.header.Auth``, ``$request.querystring.Name``. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see [Working with Lambda authorizers for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html).\n For ``JWT``, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example ``$request.header.Authorization``.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "IdentityValidationExpression": { + "description": "This parameter is not used.", + "type": "string" + }, + "JwtConfiguration": { + "$ref": "#/definitions/JWTConfiguration", + "description": "The ``JWTConfiguration`` property specifies the configuration of a JWT authorizer. Required for the ``JWT`` authorizer type. Supported only for HTTP APIs." + }, + "Name": { + "description": "The name of the authorizer.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AuthorizerId" + ], + "required": [ + "AuthorizerType", + "ApiId", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigatewayv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-deployment.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-deployment.json new file mode 100644 index 0000000000..7f09908f22 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-deployment.json @@ -0,0 +1,87 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "description": "The ``AWS::ApiGatewayV2::Deployment`` resource creates a deployment for an API.", + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/DeploymentId" + ], + "properties": { + "ApiId": { + "description": "The API identifier.", + "type": "string" + }, + "DeploymentId": { + "description": "", + "type": "string" + }, + "Description": { + "description": "The description for the deployment resource.", + "type": "string" + }, + "StageName": { + "description": "The name of an existing stage to associate with the deployment.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/DeploymentId" + ], + "required": [ + "ApiId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigatewayv2", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Deployment", + "writeOnlyProperties": [ + "/properties/StageName" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-domainname.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-domainname.json new file mode 100644 index 0000000000..c787ae1f65 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-domainname.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "DomainNameConfiguration": { + "additionalProperties": false, + "description": "The ``DomainNameConfiguration`` property type specifies the configuration for an API's domain name.\n ``DomainNameConfiguration`` is a property of the [AWS::ApiGatewayV2::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html) resource.", + "properties": { + "CertificateArn": { + "description": "An AWS-managed certificate that will be used by the edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.", + "type": "string" + }, + "CertificateName": { + "description": "The user-friendly name of the certificate that will be used by the edge-optimized endpoint for this domain name.", + "type": "string" + }, + "EndpointType": { + "description": "The endpoint type.", + "type": "string" + }, + "OwnershipVerificationCertificateArn": { + "description": "The Amazon resource name (ARN) for the public certificate issued by ACMlong. This ARN is used to validate custom domain ownership. It's required only if you configure mutual TLS and use either an ACM-imported or a private CA certificate ARN as the regionalCertificateArn.", + "type": "string" + }, + "SecurityPolicy": { + "description": "The Transport Layer Security (TLS) version of the security policy for this domain name. The valid values are ``TLS_1_0`` and ``TLS_1_2``.", + "type": "string" + } + }, + "type": "object" + }, + "MutualTlsAuthentication": { + "additionalProperties": false, + "description": "If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API.", + "properties": { + "TruststoreUri": { + "description": "An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, ``s3://bucket-name/key-name``. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.", + "type": "string" + }, + "TruststoreVersion": { + "description": "The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "The ``AWS::ApiGatewayV2::DomainName`` resource specifies a custom domain name for your API in Amazon API Gateway (API Gateway). \n You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide*.", + "handlers": { + "create": { + "permissions": [ + "apigateway:POST", + "apigateway:GET", + "apigateway:PUT" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainName" + ], + "properties": { + "DomainName": { + "description": "The custom domain name for your API in Amazon API Gateway. Uppercase letters are not supported.", + "type": "string" + }, + "DomainNameConfigurations": { + "description": "The domain name configurations.", + "items": { + "$ref": "#/definitions/DomainNameConfiguration" + }, + "type": "array", + "uniqueItems": false + }, + "MutualTlsAuthentication": { + "$ref": "#/definitions/MutualTlsAuthentication", + "description": "The mutual TLS authentication configuration for a custom domain name." + }, + "RegionalDomainName": { + "description": "", + "type": "string" + }, + "RegionalHostedZoneId": { + "description": "", + "type": "string" + }, + "Tags": { + "additionalProperties": false, + "description": "The collection of tags associated with a domain name.", + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/RegionalDomainName", + "/properties/RegionalHostedZoneId" + ], + "required": [ + "DomainName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigatewayv2.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::ApiGatewayV2::DomainName" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-integrationresponse.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-integrationresponse.json new file mode 100644 index 0000000000..125dc378dd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-integrationresponse.json @@ -0,0 +1,90 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId", + "/properties/IntegrationId" + ], + "description": "The ``AWS::ApiGatewayV2::IntegrationResponse`` resource updates an integration response for an WebSocket API. For more information, see [Set up WebSocket API Integration Responses in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-integration-responses.html) in the *API Gateway Developer Guide*.", + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:PUT", + "apigateway:GET" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/IntegrationId", + "/properties/IntegrationResponseId" + ], + "properties": { + "ApiId": { + "description": "The API identifier.", + "type": "string" + }, + "ContentHandlingStrategy": { + "description": "Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n ``CONVERT_TO_BINARY``: Converts a response payload from a Base64-encoded string to the corresponding binary blob.\n ``CONVERT_TO_TEXT``: Converts a response payload from a binary blob to a Base64-encoded string.\n If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification.", + "type": "string" + }, + "IntegrationId": { + "description": "The integration ID.", + "type": "string" + }, + "IntegrationResponseId": { + "description": "", + "type": "string" + }, + "IntegrationResponseKey": { + "description": "The integration response key.", + "type": "string" + }, + "ResponseParameters": { + "description": "A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of ``method.response.header.{name}``, where name is a valid and unique header name. The mapped non-static value must match the pattern of ``integration.response.header.{name}`` or ``integration.response.body.{JSON-expression}``, where ``{name}`` is a valid and unique response header name and ``{JSON-expression}`` is a valid JSON expression without the ``$`` prefix.", + "type": "object" + }, + "ResponseTemplates": { + "description": "The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.", + "type": "object" + }, + "TemplateSelectionExpression": { + "description": "The template selection expression for the integration response. Supported only for WebSocket APIs.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/IntegrationResponseId" + ], + "required": [ + "ApiId", + "IntegrationId", + "IntegrationResponseKey" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigatewayv2.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::IntegrationResponse" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-model.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-model.json new file mode 100644 index 0000000000..f3d50feb83 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-model.json @@ -0,0 +1,90 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "description": "The ``AWS::ApiGatewayV2::Model`` resource updates data model for a WebSocket API. For more information, see [Model Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-model-selection-expressions) in the *API Gateway Developer Guide*.", + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/ModelId" + ], + "properties": { + "ApiId": { + "description": "The API identifier.", + "type": "string" + }, + "ContentType": { + "description": "The content-type for the model, for example, \"application/json\".", + "type": "string" + }, + "Description": { + "description": "The description of the model.", + "type": "string" + }, + "ModelId": { + "description": "", + "type": "string" + }, + "Name": { + "description": "The name of the model.", + "type": "string" + }, + "Schema": { + "description": "The schema for the model. For application/json models, this should be JSON schema draft 4 model.", + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/ModelId" + ], + "required": [ + "ApiId", + "Schema", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigatewayv2", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Model" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-route.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-route.json new file mode 100644 index 0000000000..5ed6872824 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-route.json @@ -0,0 +1,143 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId" + ], + "definitions": { + "ParameterConstraints": { + "additionalProperties": false, + "description": "", + "properties": { + "Required": { + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + } + }, + "description": "The ``AWS::ApiGatewayV2::Route`` resource creates a route for an API.", + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/RouteId" + ], + "properties": { + "ApiId": { + "description": "The API identifier.", + "type": "string" + }, + "ApiKeyRequired": { + "description": "Specifies whether an API key is required for the route. Supported only for WebSocket APIs.", + "type": "boolean" + }, + "AuthorizationScopes": { + "description": "The authorization scopes supported by this route.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AuthorizationType": { + "description": "The authorization type for the route. For WebSocket APIs, valid values are ``NONE`` for open access, ``AWS_IAM`` for using AWS IAM permissions, and ``CUSTOM`` for using a Lambda authorizer. For HTTP APIs, valid values are ``NONE`` for open access, ``JWT`` for using JSON Web Tokens, ``AWS_IAM`` for using AWS IAM permissions, and ``CUSTOM`` for using a Lambda authorizer.", + "type": "string" + }, + "AuthorizerId": { + "description": "The identifier of the ``Authorizer`` resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer.", + "type": "string" + }, + "ModelSelectionExpression": { + "description": "The model selection expression for the route. Supported only for WebSocket APIs.", + "type": "string" + }, + "OperationName": { + "description": "The operation name for the route.", + "type": "string" + }, + "RequestModels": { + "description": "The request models for the route. Supported only for WebSocket APIs.", + "type": "object" + }, + "RequestParameters": { + "description": "The request parameters for the route. Supported only for WebSocket APIs.", + "items": { + "$ref": "#/definitions/ParameterConstraints" + }, + "type": "object" + }, + "RouteId": { + "description": "", + "type": "string" + }, + "RouteKey": { + "description": "The route key for the route. For HTTP APIs, the route key can be either ``$default``, or a combination of an HTTP method and resource path, for example, ``GET /pets``.", + "type": "string" + }, + "RouteResponseSelectionExpression": { + "description": "The route response selection expression for the route. Supported only for WebSocket APIs.", + "type": "string" + }, + "Target": { + "description": "The target for the route.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/RouteId" + ], + "required": [ + "RouteKey", + "ApiId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigatewayv2", + "tagging": { + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::Route", + "writeOnlyProperties": [ + "/properties/AuthorizerId", + "/properties/RequestParameters" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-routeresponse.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-routeresponse.json new file mode 100644 index 0000000000..9783f42b2c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-apigatewayv2-routeresponse.json @@ -0,0 +1,112 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApiId", + "/properties/RouteId" + ], + "definitions": { + "ParameterConstraints": { + "additionalProperties": false, + "description": "Specifies whether the parameter is required.", + "properties": { + "Required": { + "description": "Specifies whether the parameter is required.", + "type": "boolean" + } + }, + "required": [ + "Required" + ], + "type": "object" + }, + "RouteParameters": { + "additionalProperties": false, + "patternProperties": { + "^.+$": { + "$ref": "#/definitions/ParameterConstraints" + } + } + } + }, + "description": "The ``AWS::ApiGatewayV2::RouteResponse`` resource creates a route response for a WebSocket API. For more information, see [Set up Route Responses for a WebSocket API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-route-response.html) in the *API Gateway Developer Guide*.", + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "permissions": [ + "apigateway:GET" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApiId", + "/properties/RouteId", + "/properties/RouteResponseId" + ], + "properties": { + "ApiId": { + "description": "The API identifier.", + "type": "string" + }, + "ModelSelectionExpression": { + "description": "The model selection expression for the route response. Supported only for WebSocket APIs.", + "type": "string" + }, + "ResponseModels": { + "description": "The response models for the route response.", + "type": "object" + }, + "ResponseParameters": { + "$ref": "#/definitions/RouteParameters", + "description": "The route response parameters." + }, + "RouteId": { + "description": "The route ID.", + "type": "string" + }, + "RouteResponseId": { + "description": "", + "type": "string" + }, + "RouteResponseKey": { + "description": "The route response key.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/RouteResponseId" + ], + "required": [ + "RouteResponseKey", + "RouteId", + "ApiId" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::ApiGatewayV2::RouteResponse" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-collaboration.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-collaboration.json deleted file mode 100644 index 3c147bd325..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-collaboration.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CreatorDisplayName", - "/properties/CreatorMemberAbilities", - "/properties/DataEncryptionMetadata", - "/properties/QueryLogStatus", - "/properties/Members" - ], - "definitions": { - "CollaborationQueryLogStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "DataEncryptionMetadata": { - "additionalProperties": false, - "properties": { - "AllowCleartext": { - "type": "boolean" - }, - "AllowDuplicates": { - "type": "boolean" - }, - "AllowJoinsOnColumnsWithDifferentNames": { - "type": "boolean" - }, - "PreserveNulls": { - "type": "boolean" - } - }, - "required": [ - "AllowCleartext", - "AllowDuplicates", - "AllowJoinsOnColumnsWithDifferentNames", - "PreserveNulls" - ], - "type": "object" - }, - "MemberAbilities": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/MemberAbility" - }, - "type": "array", - "uniqueItems": true - }, - "MemberAbility": { - "enum": [ - "CAN_QUERY", - "CAN_RECEIVE_RESULTS" - ], - "type": "string" - }, - "MemberSpecification": { - "additionalProperties": false, - "properties": { - "AccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "DisplayName": { - "$ref": "#/definitions/Name" - }, - "MemberAbilities": { - "$ref": "#/definitions/MemberAbilities" - } - }, - "required": [ - "AccountId", - "DisplayName", - "MemberAbilities" - ], - "type": "object" - }, - "MemberStatus": { - "enum": [ - "INVITED", - "ACTIVE", - "LEFT", - "REMOVED" - ], - "type": "string" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Represents a collaboration between AWS accounts that allows for secure data collaboration", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html", - "handlers": { - "create": { - "permissions": [ - "cleanrooms:CreateCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:GetCollaboration", - "cleanrooms:ListCollaborations" - ] - }, - "delete": { - "permissions": [ - "cleanrooms:DeleteCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListTagsForResource", - "cleanrooms:UntagResource", - "cleanrooms:ListMembers", - "cleanrooms:ListCollaborations" - ] - }, - "list": { - "permissions": [ - "cleanrooms:ListCollaborations" - ] - }, - "read": { - "permissions": [ - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "cleanrooms:UpdateCollaboration", - "cleanrooms:GetCollaboration", - "cleanrooms:ListMembers", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/CollaborationIdentifier" - ], - "properties": { - "Arn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "CreatorDisplayName": { - "$ref": "#/definitions/Name" - }, - "CreatorMemberAbilities": { - "$ref": "#/definitions/MemberAbilities" - }, - "DataEncryptionMetadata": { - "$ref": "#/definitions/DataEncryptionMetadata" - }, - "Description": { - "maxLength": 255, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t\\r\\n]*$", - "type": "string" - }, - "Members": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/MemberSpecification" - }, - "maxItems": 9, - "minItems": 0, - "type": "array" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^(?!\\s*$)[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\t]*$", - "type": "string" - }, - "QueryLogStatus": { - "$ref": "#/definitions/CollaborationQueryLogStatus" - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CollaborationIdentifier" - ], - "required": [ - "CreatorDisplayName", - "CreatorMemberAbilities", - "Members", - "Name", - "Description", - "QueryLogStatus" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CleanRooms::Collaboration" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-membership.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-membership.json deleted file mode 100644 index 35bb82ba7c..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-cleanrooms-membership.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CollaborationIdentifier" - ], - "definitions": { - "MembershipProtectedQueryOutputConfiguration": { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" - } - }, - "required": [ - "S3" - ], - "type": "object" - }, - "MembershipProtectedQueryResultConfiguration": { - "additionalProperties": false, - "properties": { - "OutputConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" - }, - "RoleArn": { - "maxLength": 512, - "minLength": 32, - "type": "string" - } - }, - "required": [ - "OutputConfiguration" - ], - "type": "object" - }, - "MembershipQueryLogStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "MembershipStatus": { - "enum": [ - "ACTIVE", - "REMOVED", - "COLLABORATION_DELETED" - ], - "type": "string" - }, - "ProtectedQueryS3OutputConfiguration": { - "additionalProperties": false, - "properties": { - "Bucket": { - "maxLength": 63, - "minLength": 3, - "type": "string" - }, - "KeyPrefix": { - "type": "string" - }, - "ResultFormat": { - "$ref": "#/definitions/ResultFormat" - } - }, - "required": [ - "ResultFormat", - "Bucket" - ], - "type": "object" - }, - "ResultFormat": { - "enum": [ - "CSV", - "PARQUET" - ], - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "description": "Represents an AWS account that is a part of a collaboration", - "handlers": { - "create": { - "permissions": [ - "cleanrooms:CreateMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:ListMemberships", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "cleanrooms:DeleteMembership", - "cleanrooms:GetMembership", - "cleanrooms:ListMemberships", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "list": { - "permissions": [ - "cleanrooms:ListMemberships" - ] - }, - "read": { - "permissions": [ - "cleanrooms:GetMembership", - "cleanrooms:ListTagsForResource", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery" - ] - }, - "update": { - "permissions": [ - "cleanrooms:UpdateMembership", - "cleanrooms:GetMembership", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:PutResourcePolicy", - "logs:CreateLogGroup", - "cleanrooms:ListTagsForResource", - "cleanrooms:TagResource", - "cleanrooms:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/MembershipIdentifier" - ], - "properties": { - "Arn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationArn": { - "maxLength": 100, - "type": "string" - }, - "CollaborationCreatorAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "CollaborationIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "DefaultResultConfiguration": { - "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" - }, - "MembershipIdentifier": { - "maxLength": 36, - "minLength": 36, - "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", - "type": "string" - }, - "QueryLogStatus": { - "$ref": "#/definitions/MembershipQueryLogStatus" - }, - "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms membership.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/CollaborationArn", - "/properties/CollaborationCreatorAccountId", - "/properties/MembershipIdentifier" - ], - "required": [ - "CollaborationIdentifier", - "QueryLogStatus" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::CleanRooms::Membership" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-config-configrule.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-config-configrule.json new file mode 100644 index 0000000000..784835744d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-config-configrule.json @@ -0,0 +1,253 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigRuleName" + ], + "definitions": { + "CustomPolicyDetails": { + "additionalProperties": false, + "description": "Custom policy details when rule is custom owned", + "properties": { + "EnableDebugLogDelivery": { + "description": "Logging toggle for custom policy rule", + "type": "boolean" + }, + "PolicyRuntime": { + "description": "Runtime system for custom policy rule", + "type": "string" + }, + "PolicyText": { + "description": "Policy definition containing logic for custom policy rule", + "type": "string" + } + }, + "type": "object" + }, + "EvaluationModeConfiguration": { + "additionalProperties": false, + "description": "Evaluation mode for the AWS Config rule", + "properties": { + "Mode": { + "description": "Mode of evaluation of AWS Config rule", + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "additionalProperties": false, + "description": "Scope to constrain which resources can trigger the rule", + "properties": { + "ComplianceResourceId": { + "description": "ID of the only one resource which we want to trigger the rule", + "type": "string" + }, + "ComplianceResourceTypes": { + "description": "Resource types of resources which we want to trigger the rule", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "TagKey": { + "description": "Tag key applied only to resources which we want to trigger the rule", + "type": "string" + }, + "TagValue": { + "description": "Tag value applied only to resources which we want to trigger the rule", + "type": "string" + } + }, + "type": "object" + }, + "Source": { + "additionalProperties": false, + "description": "Source of events for the config rule", + "properties": { + "CustomPolicyDetails": { + "$ref": "#/definitions/CustomPolicyDetails", + "description": "Custom policy details when rule is custom owned" + }, + "Owner": { + "description": "Owner of the config rule", + "enum": [ + "CUSTOM_LAMBDA", + "AWS", + "CUSTOM_POLICY" + ], + "type": "string" + }, + "SourceDetails": { + "description": "List of message types that can trigger the rule", + "items": { + "$ref": "#/definitions/SourceDetail", + "description": "Source and message type that can trigger the rule" + }, + "type": "array", + "uniqueItems": true + }, + "SourceIdentifier": { + "description": "Identifier for the source of events", + "type": "string" + } + }, + "required": [ + "Owner" + ], + "type": "object" + }, + "SourceDetail": { + "additionalProperties": false, + "description": "Source and message type that can trigger the rule", + "properties": { + "EventSource": { + "description": "Source of event that can trigger the rule", + "enum": [ + "aws.config" + ], + "type": "string" + }, + "MaximumExecutionFrequency": { + "description": "Frequency at which the rule has to be evaluated", + "enum": [ + "One_Hour", + "Three_Hours", + "Six_Hours", + "Twelve_Hours", + "TwentyFour_Hours" + ], + "type": "string" + }, + "MessageType": { + "description": "Notification type that can trigger the rule", + "enum": [ + "ConfigurationItemChangeNotification", + "ConfigurationSnapshotDeliveryCompleted", + "ScheduledNotification", + "OversizedConfigurationItemChangeNotification" + ], + "type": "string" + } + }, + "required": [ + "EventSource", + "MessageType" + ], + "type": "object" + } + }, + "description": "Schema for AWS Config ConfigRule", + "handlers": { + "create": { + "permissions": [ + "config:PutConfigRule", + "config:DescribeConfigRules" + ] + }, + "delete": { + "permissions": [ + "config:DeleteConfigRule", + "config:DescribeConfigRules" + ] + }, + "list": { + "permissions": [ + "config:DescribeConfigRules" + ] + }, + "read": { + "permissions": [ + "config:DescribeConfigRules", + "config:DescribeComplianceByConfigRule" + ] + }, + "update": { + "permissions": [ + "config:PutConfigRule", + "config:DescribeConfigRules" + ] + } + }, + "primaryIdentifier": [ + "/properties/ConfigRuleName" + ], + "properties": { + "Arn": { + "description": "ARN generated for the AWS Config rule ", + "type": "string" + }, + "Compliance": { + "additionalProperties": false, + "description": "Compliance details of the Config rule", + "properties": { + "Type": { + "description": "Compliance type determined by the Config rule", + "type": "string" + } + }, + "type": "object" + }, + "ConfigRuleId": { + "description": "ID of the config rule", + "type": "string" + }, + "ConfigRuleName": { + "description": "Name for the AWS Config rule", + "type": "string" + }, + "Description": { + "description": "Description provided for the AWS Config rule", + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "EvaluationModes": { + "description": "List of EvaluationModeConfiguration objects", + "items": { + "$ref": "#/definitions/EvaluationModeConfiguration", + "description": "Mode of evaluation of AWS Config rule" + }, + "type": "array", + "uniqueItems": false + }, + "InputParameters": { + "description": "JSON string passed the Lambda function", + "type": [ + "string", + "object" + ] + }, + "MaximumExecutionFrequency": { + "description": "Maximum frequency at which the rule has to be evaluated", + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/Scope", + "description": "Scope to constrain which resources can trigger the AWS Config rule" + }, + "Source": { + "$ref": "#/definitions/Source", + "description": "Source of events for the AWS Config rule" + } + }, + "propertyTransform": { + "/properties/Source": "$count(Source.SourceDetails[MessageType=\"ConfigurationItemChangeNotification\"]) > 0 and $count(Source.SourceDetails[MessageType=\"OversizedConfigurationItemChangeNotification\"]) = 0 ? $ ~> | $.Source | {\"SourceDetails\" : [SourceDetails, {\"EventSource\": \"aws.config\",\"MessageType\": \"OversizedConfigurationItemChangeNotification\"}]} | : $" + }, + "readOnlyProperties": [ + "/properties/ConfigRuleId", + "/properties/Compliance/Type", + "/properties/Arn" + ], + "required": [ + "Source" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-config.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Config::ConfigRule", + "writeOnlyProperties": [ + "/properties/Source/CustomPolicyDetails/PolicyText" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-phonenumber.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-phonenumber.json new file mode 100644 index 0000000000..a5cac61afd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-phonenumber.json @@ -0,0 +1,156 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/CountryCode", + "/properties/Prefix", + "/properties/SourcePhoneNumberArn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 1 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Connect::PhoneNumber", + "handlers": { + "create": { + "permissions": [ + "connect:ClaimPhoneNumber", + "connect:SearchAvailablePhoneNumbers", + "connect:DescribePhoneNumber", + "connect:TagResource", + "connect:ImportPhoneNumber", + "sms-voice:DescribePhoneNumbers" + ] + }, + "delete": { + "permissions": [ + "connect:ReleasePhoneNumber", + "connect:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TargetArn": { + "$ref": "resource-schema.json#/properties/TargetArn" + } + }, + "required": [ + "TargetArn" + ] + }, + "permissions": [ + "connect:ListPhoneNumbersV2" + ] + }, + "read": { + "permissions": [ + "connect:DescribePhoneNumber" + ] + }, + "update": { + "permissions": [ + "connect:UpdatePhoneNumber", + "connect:UpdatePhoneNumberMetadata", + "connect:DescribePhoneNumber", + "connect:TagResource", + "connect:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/PhoneNumberArn" + ], + "properties": { + "Address": { + "description": "The phone number e164 address.", + "pattern": "^\\+[0-9]{2,15}", + "type": "string" + }, + "CountryCode": { + "description": "The phone number country code.", + "pattern": "^[A-Z]{2}", + "type": "string" + }, + "Description": { + "description": "The description of the phone number.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "PhoneNumberArn": { + "description": "The phone number ARN", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:phone-number/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Prefix": { + "description": "The phone number prefix.", + "pattern": "^\\+[0-9]{1,15}", + "type": "string" + }, + "SourcePhoneNumberArn": { + "description": "The source phone number arn.", + "type": "string" + }, + "Tags": { + "description": "One or more tags.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "TargetArn": { + "description": "The ARN of the target the phone number is claimed to.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:(instance|traffic-distribution-group)/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Type": { + "description": "The phone number type", + "pattern": "TOLL_FREE|DID|UIFN|SHARED|THIRD_PARTY_DID|THIRD_PARTY_TF|SHORT_CODE", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/PhoneNumberArn", + "/properties/Address" + ], + "required": [ + "TargetArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Connect::PhoneNumber", + "writeOnlyProperties": [ + "/properties/Prefix" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-predefinedattribute.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-predefinedattribute.json new file mode 100644 index 0000000000..0c16367e0b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-predefinedattribute.json @@ -0,0 +1,100 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceArn", + "/properties/Name" + ], + "definitions": { + "StringList": { + "description": "Predefined attribute values of type string list.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Value" + }, + "maxItems": 128, + "minItems": 1, + "type": "array" + }, + "Value": { + "description": "Textual or numeric value that describes an attribute.", + "maxLength": 64, + "minLength": 1, + "type": "string" + } + }, + "description": "Resource Type definition for AWS::Connect::PredefinedAttribute", + "handlers": { + "create": { + "permissions": [ + "connect:CreatePredefinedAttribute" + ] + }, + "delete": { + "permissions": [ + "connect:DeletePredefinedAttribute" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListPredefinedAttributes" + ] + }, + "read": { + "permissions": [ + "connect:DescribePredefinedAttribute" + ] + }, + "update": { + "permissions": [ + "connect:UpdatePredefinedAttribute" + ] + } + }, + "primaryIdentifier": [ + "/properties/InstanceArn", + "/properties/Name" + ], + "properties": { + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + "type": "string" + }, + "Name": { + "description": "The name of the predefined attribute.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Values": { + "additionalProperties": false, + "description": "The values of a predefined attribute.", + "properties": { + "StringList": { + "$ref": "#/definitions/StringList" + } + }, + "type": "object" + } + }, + "required": [ + "InstanceArn", + "Name", + "Values" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Connect::PredefinedAttribute" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-user.json index b949608f4f..546e21910e 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-user.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-connect-user.json @@ -6,6 +6,18 @@ "minimum": 0, "type": "integer" }, + "AttributeName": { + "description": "The name of user's proficiency. You must use name of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "description": "The value of user's proficiency. You must use value of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, "AutoAccept": { "description": "The Auto accept setting.", "type": "boolean" @@ -26,6 +38,12 @@ "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", "type": "string" }, + "Level": { + "description": "The level of the proficiency. The valid values are 1, 2, 3, 4 and 5.", + "maximum": 5.0, + "minimum": 1.0, + "type": "number" + }, "Mobile": { "description": "The mobile phone number.", "pattern": "^\\+[1-9]\\d{1,14}$", @@ -115,6 +133,27 @@ "PhoneType" ], "type": "object" + }, + "UserProficiency": { + "additionalProperties": false, + "description": "Proficiency of a user.", + "properties": { + "AttributeName": { + "$ref": "#/definitions/AttributeName" + }, + "AttributeValue": { + "$ref": "#/definitions/AttributeValue" + }, + "Level": { + "$ref": "#/definitions/Level" + } + }, + "required": [ + "AttributeName", + "AttributeValue", + "Level" + ], + "type": "object" } }, "description": "Resource Type definition for AWS::Connect::User", @@ -215,6 +254,14 @@ "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", "type": "string" }, + "UserProficiencies": { + "description": "One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/UserProficiency" + }, + "type": "array" + }, "Username": { "description": "The user name for the account.", "maxLength": 64, diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-docdb-eventsubscription.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-docdb-eventsubscription.json new file mode 100644 index 0000000000..7c3dc0991b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-docdb-eventsubscription.json @@ -0,0 +1,49 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SubscriptionName", + "/properties/SnsTopicArn" + ], + "description": "Resource Type definition for AWS::DocDB::EventSubscription", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceType": { + "type": "string" + }, + "SubscriptionName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SnsTopicArn" + ], + "typeName": "AWS::DocDB::EventSubscription" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-subnet.json index b4469516b4..f01de4dc4e 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-subnet.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-subnet.json @@ -9,7 +9,11 @@ "/properties/AvailabilityZoneId", "/properties/CidrBlock", "/properties/OutpostArn", - "/properties/Ipv6Native" + "/properties/Ipv6Native", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" ], "definitions": { "Tag": { @@ -88,6 +92,14 @@ "EnableDns64": { "type": "boolean" }, + "Ipv4IpamPoolId": { + "description": "The ID of an IPv4 IPAM pool you want to use for allocating this subnet's CIDR", + "type": "string" + }, + "Ipv4NetmaskLength": { + "description": "The netmask length of the IPv4 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + "type": "integer" + }, "Ipv6CidrBlock": { "type": "string" }, @@ -98,9 +110,17 @@ "type": "array", "uniqueItems": false }, + "Ipv6IpamPoolId": { + "description": "The ID of an IPv6 IPAM pool you want to use for allocating this subnet's CIDR", + "type": "string" + }, "Ipv6Native": { "type": "boolean" }, + "Ipv6NetmaskLength": { + "description": "The netmask length of the IPv6 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + "type": "integer" + }, "MapPublicIpOnLaunch": { "type": "boolean" }, @@ -153,5 +173,11 @@ "tagUpdatable": true, "taggable": true }, - "typeName": "AWS::EC2::Subnet" + "typeName": "AWS::EC2::Subnet", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ] } diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-clustercapacityproviderassociations.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-clustercapacityproviderassociations.json deleted file mode 100644 index 1f0d902bba..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecs-clustercapacityproviderassociations.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Cluster" - ], - "definitions": { - "CapacityProvider": { - "anyOf": [ - { - "enum": [ - "FARGATE", - "FARGATE_SPOT" - ], - "type": "string" - }, - { - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - ], - "description": "If using ec2 auto-scaling, the name of the associated capacity provider. Otherwise FARGATE, FARGATE_SPOT.", - "type": "string" - }, - "CapacityProviderStrategy": { - "additionalProperties": false, - "properties": { - "Base": { - "maximum": 100000, - "minimum": 0, - "type": "integer" - }, - "CapacityProvider": { - "$ref": "#/definitions/CapacityProvider" - }, - "Weight": { - "maximum": 1000, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "CapacityProvider" - ], - "type": "object" - }, - "CapacityProviders": { - "description": "List of capacity providers to associate with the cluster", - "items": { - "$ref": "#/definitions/CapacityProvider" - }, - "type": "array", - "uniqueItems": true - }, - "Cluster": { - "description": "The name of the cluster", - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "DefaultCapacityProviderStrategy": { - "description": "List of capacity providers to associate with the cluster", - "items": { - "$ref": "#/definitions/CapacityProviderStrategy" - }, - "type": "array" - } - }, - "description": "Associate a set of ECS Capacity Providers with a specified ECS Cluster", - "handlers": { - "create": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:PutClusterCapacityProviders" - ] - }, - "delete": { - "permissions": [ - "ecs:PutClusterCapacityProviders", - "ecs:DescribeClusters" - ] - }, - "list": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:ListClusters" - ] - }, - "read": { - "permissions": [ - "ecs:DescribeClusters" - ] - }, - "update": { - "permissions": [ - "ecs:DescribeClusters", - "ecs:PutClusterCapacityProviders" - ] - } - }, - "primaryIdentifier": [ - "/properties/Cluster" - ], - "properties": { - "CapacityProviders": { - "$ref": "#/definitions/CapacityProviders" - }, - "Cluster": { - "$ref": "#/definitions/Cluster" - }, - "DefaultCapacityProviderStrategy": { - "$ref": "#/definitions/DefaultCapacityProviderStrategy" - } - }, - "required": [ - "CapacityProviders", - "Cluster", - "DefaultCapacityProviderStrategy" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::ECS::ClusterCapacityProviderAssociations" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-rule.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-rule.json new file mode 100644 index 0000000000..09f2747d2a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-events-rule.json @@ -0,0 +1,604 @@ +{ + "additionalProperties": false, + "anyOf": [ + { + "required": [ + "EventPattern" + ] + }, + { + "required": [ + "ScheduleExpression" + ] + } + ], + "conditionalCreateOnlyProperties": [ + "/properties/EventBusName" + ], + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "AppSyncParameters": { + "additionalProperties": false, + "properties": { + "GraphQLOperation": { + "type": "string" + } + }, + "required": [ + "GraphQLOperation" + ], + "type": "object" + }, + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + }, + "SecurityGroups": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "BatchArrayProperties": { + "additionalProperties": false, + "properties": { + "Size": { + "type": "integer" + } + }, + "type": "object" + }, + "BatchParameters": { + "additionalProperties": false, + "properties": { + "ArrayProperties": { + "$ref": "#/definitions/BatchArrayProperties" + }, + "JobDefinition": { + "type": "string" + }, + "JobName": { + "type": "string" + }, + "RetryStrategy": { + "$ref": "#/definitions/BatchRetryStrategy" + } + }, + "required": [ + "JobName", + "JobDefinition" + ], + "type": "object" + }, + "BatchRetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "integer" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "required": [ + "CapacityProvider" + ], + "type": "object" + }, + "DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "EcsParameters": { + "additionalProperties": false, + "properties": { + "CapacityProviderStrategy": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array", + "uniqueItems": true + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "Group": { + "type": "string" + }, + "LaunchType": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlacementConstraints": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "type": "array", + "uniqueItems": true + }, + "PlacementStrategies": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "type": "array", + "uniqueItems": true + }, + "PlatformVersion": { + "type": "string" + }, + "PropagateTags": { + "type": "string" + }, + "ReferenceId": { + "type": "string" + }, + "TagList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TaskCount": { + "type": "integer" + }, + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "HttpParameters": { + "additionalProperties": false, + "properties": { + "HeaderParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "PathParameterValues": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "QueryStringParameters": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "InputTransformer": { + "additionalProperties": false, + "properties": { + "InputPathsMap": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "InputTemplate": { + "type": "string" + } + }, + "required": [ + "InputTemplate" + ], + "type": "object" + }, + "KinesisParameters": { + "additionalProperties": false, + "properties": { + "PartitionKeyPath": { + "type": "string" + } + }, + "required": [ + "PartitionKeyPath" + ], + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "RedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "Sql": { + "type": "string" + }, + "Sqls": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatementName": { + "type": "string" + }, + "WithEvent": { + "type": "boolean" + } + }, + "required": [ + "Database" + ], + "type": "object" + }, + "RetryPolicy": { + "additionalProperties": false, + "properties": { + "MaximumEventAgeInSeconds": { + "type": "integer" + }, + "MaximumRetryAttempts": { + "type": "integer" + } + }, + "type": "object" + }, + "RunCommandParameters": { + "additionalProperties": false, + "properties": { + "RunCommandTargets": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/RunCommandTarget" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RunCommandTargets" + ], + "type": "object" + }, + "RunCommandTarget": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Values", + "Key" + ], + "type": "object" + }, + "SageMakerPipelineParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "SageMakerPipelineParameters": { + "additionalProperties": false, + "properties": { + "PipelineParameterList": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/SageMakerPipelineParameter" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "SqsParameters": { + "additionalProperties": false, + "properties": { + "MessageGroupId": { + "type": "string" + } + }, + "required": [ + "MessageGroupId" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "Target": { + "additionalProperties": false, + "properties": { + "AppSyncParameters": { + "$ref": "#/definitions/AppSyncParameters" + }, + "Arn": { + "type": "string" + }, + "BatchParameters": { + "$ref": "#/definitions/BatchParameters" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/DeadLetterConfig" + }, + "EcsParameters": { + "$ref": "#/definitions/EcsParameters" + }, + "HttpParameters": { + "$ref": "#/definitions/HttpParameters" + }, + "Id": { + "type": "string" + }, + "Input": { + "type": "string" + }, + "InputPath": { + "type": "string" + }, + "InputTransformer": { + "$ref": "#/definitions/InputTransformer" + }, + "KinesisParameters": { + "$ref": "#/definitions/KinesisParameters" + }, + "RedshiftDataParameters": { + "$ref": "#/definitions/RedshiftDataParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/RetryPolicy" + }, + "RoleArn": { + "type": "string" + }, + "RunCommandParameters": { + "$ref": "#/definitions/RunCommandParameters" + }, + "SageMakerPipelineParameters": { + "$ref": "#/definitions/SageMakerPipelineParameters" + }, + "SqsParameters": { + "$ref": "#/definitions/SqsParameters" + } + }, + "required": [ + "Id", + "Arn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Events::Rule", + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "events:DescribeRule", + "events:PutRule", + "events:PutTargets" + ] + }, + "delete": { + "permissions": [ + "iam:PassRole", + "events:DescribeRule", + "events:DeleteRule", + "events:RemoveTargets", + "events:ListTargetsByRule" + ] + }, + "list": { + "permissions": [ + "events:ListRules" + ] + }, + "read": { + "permissions": [ + "iam:PassRole", + "events:DescribeRule", + "events:ListTargetsByRule" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "events:DescribeRule", + "events:PutRule", + "events:RemoveTargets", + "events:PutTargets" + ] + } + }, + "message": { + "anyOf": "Specify either 'EventPattern' or 'ScheduleExpression'" + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "description": "The ARN of the rule, such as arn:aws:events:us-east-2:123456789012:rule/example.", + "type": "string" + }, + "Description": { + "description": "The description of the rule.", + "type": "string" + }, + "EventBusName": { + "description": "The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used.", + "type": "string" + }, + "EventPattern": { + "description": "The event pattern of the rule. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.", + "type": [ + "string", + "object" + ] + }, + "Name": { + "description": "The name of the rule.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the role that is used for target invocation.", + "type": "string" + }, + "ScheduleExpression": { + "description": "The scheduling expression. For example, \"cron(0 20 * * ? *)\", \"rate(5 minutes)\". For more information, see Creating an Amazon EventBridge rule that runs on a schedule.", + "type": "string" + }, + "State": { + "description": "The state of the rule.", + "enum": [ + "DISABLED", + "ENABLED", + "ENABLED_WITH_ALL_CLOUDTRAIL_MANAGEMENT_EVENTS" + ], + "type": "string" + }, + "Targets": { + "description": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule.\nTargets are the resources that are invoked when a rule is triggered.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Target" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "tagging": { + "taggable": false + }, + "typeName": "AWS::Events::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-globalaccelerator-endpointgroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-globalaccelerator-endpointgroup.json new file mode 100644 index 0000000000..aa1df3da51 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-globalaccelerator-endpointgroup.json @@ -0,0 +1,181 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/EndpointGroupRegion", + "/properties/ListenerArn" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "description": "The configuration for a given endpoint", + "properties": { + "AttachmentArn": { + "description": "Attachment ARN that provides access control to the cross account endpoint. Not required for resources hosted in the same account as the endpoint group.", + "type": "string" + }, + "ClientIPPreservationEnabled": { + "default": true, + "description": "true if client ip should be preserved", + "type": "boolean" + }, + "EndpointId": { + "description": "Id of the endpoint. For Network/Application Load Balancer this value is the ARN. For EIP, this value is the allocation ID. For EC2 instances, this is the EC2 instance ID", + "type": "string" + }, + "Weight": { + "default": 100, + "description": "The weight for the endpoint.", + "maximum": 255, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "EndpointId" + ], + "type": "object" + }, + "Port": { + "description": "A network port number", + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "PortOverride": { + "additionalProperties": false, + "description": "listener to endpoint port mapping.", + "properties": { + "EndpointPort": { + "$ref": "#/definitions/Port" + }, + "ListenerPort": { + "$ref": "#/definitions/Port" + } + }, + "required": [ + "ListenerPort", + "EndpointPort" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GlobalAccelerator::EndpointGroup", + "handlers": { + "create": { + "permissions": [ + "globalaccelerator:CreateEndpointGroup", + "globalaccelerator:DescribeEndpointGroup", + "globalaccelerator:DescribeAccelerator", + "globalaccelerator:DescribeListener", + "globalaccelerator:ListAccelerators", + "globalaccelerator:ListListeners" + ] + }, + "delete": { + "permissions": [ + "globalaccelerator:DeleteEndpointGroup", + "globalaccelerator:DescribeEndpointGroup", + "globalaccelerator:DescribeAccelerator" + ] + }, + "list": { + "permissions": [ + "globalaccelerator:ListEndpointGroups" + ] + }, + "read": { + "permissions": [ + "globalaccelerator:DescribeEndpointGroup" + ] + }, + "update": { + "permissions": [ + "globalaccelerator:UpdateEndpointGroup", + "globalaccelerator:DescribeEndpointGroup", + "globalaccelerator:DescribeListener", + "globalaccelerator:DescribeAccelerator" + ] + } + }, + "primaryIdentifier": [ + "/properties/EndpointGroupArn" + ], + "properties": { + "EndpointConfigurations": { + "description": "The list of endpoint objects.", + "items": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "type": "array" + }, + "EndpointGroupArn": { + "description": "The Amazon Resource Name (ARN) of the endpoint group", + "type": "string" + }, + "EndpointGroupRegion": { + "description": "The name of the AWS Region where the endpoint group is located", + "type": "string" + }, + "HealthCheckIntervalSeconds": { + "default": 30, + "description": "The time in seconds between each health check for an endpoint. Must be a value of 10 or 30", + "type": "integer" + }, + "HealthCheckPath": { + "default": "/", + "description": "", + "type": "string" + }, + "HealthCheckPort": { + "default": -1, + "description": "The port that AWS Global Accelerator uses to check the health of endpoints in this endpoint group.", + "maximum": 65535, + "minimum": -1, + "type": "integer" + }, + "HealthCheckProtocol": { + "default": "TCP", + "description": "The protocol that AWS Global Accelerator uses to check the health of endpoints in this endpoint group.", + "enum": [ + "TCP", + "HTTP", + "HTTPS" + ], + "type": "string" + }, + "ListenerArn": { + "description": "The Amazon Resource Name (ARN) of the listener", + "type": "string" + }, + "PortOverrides": { + "items": { + "$ref": "#/definitions/PortOverride" + }, + "type": "array" + }, + "ThresholdCount": { + "default": 3, + "description": "The number of consecutive health checks required to set the state of the endpoint to unhealthy.", + "type": "integer" + }, + "TrafficDialPercentage": { + "default": 100, + "description": "The percentage of traffic to sent to an AWS Region", + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "readOnlyProperties": [ + "/properties/EndpointGroupArn" + ], + "required": [ + "ListenerArn", + "EndpointGroupRegion" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-globalaccelerator", + "typeName": "AWS::GlobalAccelerator::EndpointGroup", + "writeOnlyProperties": [ + "/properties/EndpointConfigurations/*/AttachmentArn" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-glue-customentitytype.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-glue-customentitytype.json new file mode 100644 index 0000000000..ef28326ab8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-glue-customentitytype.json @@ -0,0 +1,32 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::Glue::CustomEntityType", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContextWords": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RegexString": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::Glue::CustomEntityType" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-image.json deleted file mode 100644 index 223d64e03e..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/Workflows", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 3cf9b2a4a9..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-workflow.json deleted file mode 100644 index 5c25c2361b..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-imagebuilder-workflow.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Version", - "/properties/ChangeDescription", - "/properties/Description", - "/properties/Data", - "/properties/Uri", - "/properties/Type", - "/properties/KmsKeyId", - "/properties/Tags" - ], - "description": "Resource schema for AWS::ImageBuilder::Workflow", - "handlers": { - "create": { - "permissions": [ - "iam:GetRole", - "kms:GenerateDataKey*", - "kms:Encrypt", - "kms:Decrypt", - "s3:GetObject", - "s3:HeadBucket", - "s3:GetBucketLocation", - "imagebuilder:TagResource", - "imagebuilder:GetWorkflow", - "imagebuilder:CreateWorkflow" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:GetWorkflow", - "imagebuilder:UnTagResource", - "imagebuilder:DeleteWorkflow" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Data" - ] - }, - { - "required": [ - "Uri" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the workflow.", - "type": "string" - }, - "ChangeDescription": { - "description": "The change description of the workflow.", - "type": "string" - }, - "Data": { - "description": "The data of the workflow.", - "maxLength": 16000, - "minLength": 1, - "type": "string" - }, - "Description": { - "description": "The description of the workflow.", - "type": "string" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the workflow.", - "type": "string" - }, - "Name": { - "description": "The name of the workflow.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the workflow.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", - "enum": [ - "BUILD", - "TEST", - "DISTRIBUTION" - ], - "type": "string" - }, - "Uri": { - "description": "The uri of the workflow.", - "type": "string" - }, - "Version": { - "description": "The version of the workflow.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Type", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Workflow", - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-iotsitewise-gateway.json new file mode 100644 index 0000000000..2c70369407 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-iotsitewise-gateway.json @@ -0,0 +1,189 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GatewayPlatform" + ], + "definitions": { + "CapabilityConfiguration": { + "description": "The JSON document that defines the gateway capability's configuration.", + "type": "string" + }, + "CapabilityNamespace": { + "description": "The namespace of the capability configuration.", + "type": "string" + }, + "GatewayCapabilitySummary": { + "additionalProperties": false, + "description": "Contains a summary of a gateway capability configuration.", + "properties": { + "CapabilityConfiguration": { + "$ref": "#/definitions/CapabilityConfiguration" + }, + "CapabilityNamespace": { + "$ref": "#/definitions/CapabilityNamespace" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "GatewayPlatform": { + "additionalProperties": false, + "description": "Contains a gateway's platform information.", + "oneOf": [ + { + "required": [ + "Greengrass" + ] + }, + { + "required": [ + "GreengrassV2" + ] + } + ], + "properties": { + "Greengrass": { + "$ref": "#/definitions/Greengrass", + "description": "A gateway that runs on AWS IoT Greengrass V1." + }, + "GreengrassV2": { + "$ref": "#/definitions/GreengrassV2", + "description": "A gateway that runs on AWS IoT Greengrass V2." + } + }, + "type": "object" + }, + "Greengrass": { + "additionalProperties": false, + "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", + "properties": { + "GroupArn": { + "description": "The ARN of the Greengrass group.", + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "GreengrassV2": { + "additionalProperties": false, + "description": "Contains the CoreDeviceThingName of AWS IoT Greengrass Group V2 that the gateway runs on.", + "properties": { + "CoreDeviceThingName": { + "description": "The name of the CoreDevice in GreenGrass V2.", + "type": "string" + } + }, + "required": [ + "CoreDeviceThingName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Gateway", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iam:PassRole", + "iam:GetRole", + "greengrass:GetCoreDevice", + "iot:DescribeThing" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteGateway" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListGateways" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotsitewise:UpdateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:DescribeGateway", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/GatewayId" + ], + "properties": { + "GatewayCapabilitySummaries": { + "description": "A list of gateway capability summaries that each contain a namespace and status.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/GatewayCapabilitySummary" + }, + "type": "array", + "uniqueItems": true + }, + "GatewayId": { + "description": "The ID of the gateway device.", + "type": "string" + }, + "GatewayName": { + "description": "A unique, friendly name for the gateway.", + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/GatewayPlatform", + "description": "The gateway's platform. You can only specify one platform in a gateway." + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the gateway.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/GatewayId" + ], + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Gateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-iotsitewise-portal.json new file mode 100644 index 0000000000..1f96697cad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-iotsitewise-portal.json @@ -0,0 +1,155 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/PortalArn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalAuthMode" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Portal", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreatePortal", + "iotsitewise:TagResource", + "iam:PassRole", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeletePortal", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListPortals" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribePortal" + ] + }, + "update": { + "permissions": [ + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", + "iotsitewise:UpdatePortal", + "iotsitewise:UntagResource", + "iam:PassRole", + "sso:GetManagedApplicationInstance", + "sso:UpdateApplicationInstanceDisplayData" + ] + } + }, + "primaryIdentifier": [ + "/properties/PortalId" + ], + "properties": { + "Alarms": { + "additionalProperties": false, + "description": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range.", + "properties": { + "AlarmRoleArn": { + "description": "The ARN of the IAM role that allows the alarm to perform actions and access AWS resources and services, such as AWS IoT Events.", + "type": "string" + }, + "NotificationLambdaArn": { + "description": "The ARN of the AWS Lambda function that manages alarm notifications. For more information, see Managing alarm notifications in the AWS IoT Events Developer Guide.", + "type": "string" + } + }, + "type": "object" + }, + "NotificationSenderEmail": { + "description": "The email address that sends alarm notifications.", + "type": "string" + }, + "PortalArn": { + "description": "The ARN of the portal, which has the following format.", + "type": "string" + }, + "PortalAuthMode": { + "description": "The service to use to authenticate users to the portal. Choose from SSO or IAM. You can't change this value after you create a portal.", + "type": "string" + }, + "PortalClientId": { + "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", + "type": "string" + }, + "PortalContactEmail": { + "description": "The AWS administrator's contact email address.", + "type": "string" + }, + "PortalDescription": { + "description": "A description for the portal.", + "type": "string" + }, + "PortalId": { + "description": "The ID of the portal.", + "type": "string" + }, + "PortalName": { + "description": "A friendly name for the portal.", + "type": "string" + }, + "PortalStartUrl": { + "description": "The public root URL for the AWS IoT AWS IoT SiteWise Monitor application portal.", + "type": "string" + }, + "RoleArn": { + "description": "The ARN of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the portal.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/PortalArn", + "/properties/PortalClientId", + "/properties/PortalId", + "/properties/PortalStartUrl" + ], + "required": [ + "PortalContactEmail", + "PortalName", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotsitewise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Portal", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-iotsitewise-project.json new file mode 100644 index 0000000000..0e457b1491 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-iotsitewise-project.json @@ -0,0 +1,120 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalId" + ], + "definitions": { + "AssetId": { + "description": "The ID of the asset", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Project", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateProject", + "iotsitewise:BatchAssociateProjectAssets" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteProject" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListProjects" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:ListTagsForResource", + "iotsitewise:ListProjectAssets" + ] + }, + "update": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:UpdateProject", + "iotsitewise:BatchAssociateProjectAssets", + "iotsitewise:BatchDisAssociateProjectAssets", + "iotsitewise:ListProjectAssets", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ProjectId" + ], + "properties": { + "AssetIds": { + "description": "The IDs of the assets to be associated to the project.", + "items": { + "$ref": "#/definitions/AssetId" + }, + "type": "array", + "uniqueItems": true + }, + "PortalId": { + "description": "The ID of the portal in which to create the project.", + "type": "string" + }, + "ProjectArn": { + "description": "The ARN of the project.", + "type": "string" + }, + "ProjectDescription": { + "description": "A description for the project.", + "type": "string" + }, + "ProjectId": { + "description": "The ID of the project.", + "type": "string" + }, + "ProjectName": { + "description": "A friendly name for the project.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ProjectId", + "/properties/ProjectArn" + ], + "required": [ + "PortalId", + "ProjectName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Project" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesisanalyticsv2-application.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesisanalyticsv2-application.json new file mode 100644 index 0000000000..0e6fb91cf4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesisanalyticsv2-application.json @@ -0,0 +1,995 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/ApplicationMode", + "/properties/RuntimeEnvironment" + ], + "definitions": { + "ApplicationCodeConfiguration": { + "additionalProperties": false, + "description": "Describes code configuration for an application.", + "properties": { + "CodeContent": { + "$ref": "#/definitions/CodeContent", + "description": "The location and type of the application code." + }, + "CodeContentType": { + "description": "Specifies whether the code content is in text or zip format.", + "enum": [ + "PLAINTEXT", + "ZIPFILE" + ], + "type": "string" + } + }, + "required": [ + "CodeContentType", + "CodeContent" + ], + "type": "object" + }, + "ApplicationConfiguration": { + "additionalProperties": false, + "description": "Specifies the creation parameters for a Kinesis Data Analytics application.", + "properties": { + "ApplicationCodeConfiguration": { + "$ref": "#/definitions/ApplicationCodeConfiguration", + "description": "The code location and type parameters for a Flink-based Kinesis Data Analytics application." + }, + "ApplicationSnapshotConfiguration": { + "$ref": "#/definitions/ApplicationSnapshotConfiguration", + "description": "Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application." + }, + "EnvironmentProperties": { + "$ref": "#/definitions/EnvironmentProperties", + "description": "Describes execution properties for a Flink-based Kinesis Data Analytics application." + }, + "FlinkApplicationConfiguration": { + "$ref": "#/definitions/FlinkApplicationConfiguration", + "description": "The creation and update parameters for a Flink-based Kinesis Data Analytics application." + }, + "SqlApplicationConfiguration": { + "$ref": "#/definitions/SqlApplicationConfiguration", + "description": "The creation and update parameters for a SQL-based Kinesis Data Analytics application." + }, + "VpcConfigurations": { + "$ref": "#/definitions/VpcConfigurations", + "description": "The array of descriptions of VPC configurations available to the application." + }, + "ZeppelinApplicationConfiguration": { + "$ref": "#/definitions/ZeppelinApplicationConfiguration", + "description": "The configuration parameters for a Kinesis Data Analytics Studio notebook." + } + }, + "type": "object" + }, + "ApplicationMaintenanceConfiguration": { + "additionalProperties": false, + "description": "Describes the maintenance configuration for the application.", + "properties": { + "ApplicationMaintenanceWindowStartTime": { + "description": "The start time for the maintenance window.", + "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$", + "type": "string" + } + }, + "required": [ + "ApplicationMaintenanceWindowStartTime" + ], + "type": "object" + }, + "ApplicationRestoreConfiguration": { + "additionalProperties": false, + "description": "Describes the restore behavior of a restarting application.", + "properties": { + "ApplicationRestoreType": { + "description": "Specifies how the application should be restored.", + "enum": [ + "SKIP_RESTORE_FROM_SNAPSHOT", + "RESTORE_FROM_LATEST_SNAPSHOT", + "RESTORE_FROM_CUSTOM_SNAPSHOT" + ], + "type": "string" + }, + "SnapshotName": { + "description": "The identifier of an existing snapshot of application state to use to restart an application. The application uses this value if RESTORE_FROM_CUSTOM_SNAPSHOT is specified for the ApplicationRestoreType.", + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + } + }, + "required": [ + "ApplicationRestoreType" + ], + "type": "object" + }, + "ApplicationSnapshotConfiguration": { + "additionalProperties": false, + "description": "Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application.", + "properties": { + "SnapshotsEnabled": { + "description": "Describes whether snapshots are enabled for a Flink-based Kinesis Data Analytics application.", + "type": "boolean" + } + }, + "required": [ + "SnapshotsEnabled" + ], + "type": "object" + }, + "Arn": { + "description": "The Amazon Resource Name", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:.*$", + "type": "string" + }, + "CSVMappingParameters": { + "additionalProperties": false, + "description": "For a SQL-based Kinesis Data Analytics application, provides additional mapping information when the record format uses delimiters, such as CSV. For example, the following sample records use CSV format, where the records use the '\\n' as the row delimiter and a comma (\",\") as the column delimiter:\n`\"name1\", \"address1\"`\n`\"name2\", \"address2\"`", + "properties": { + "RecordColumnDelimiter": { + "description": "The column delimiter. For example, in a CSV format, a comma (\",\") is the typical column delimiter.", + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "RecordRowDelimiter": { + "description": "The row delimiter. For example, in a CSV format, '\\n' is the typical row delimiter.", + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "RecordRowDelimiter", + "RecordColumnDelimiter" + ], + "type": "object" + }, + "CatalogConfiguration": { + "additionalProperties": false, + "description": "The configuration parameters for the default Amazon Glue database. You use this database for SQL queries that you write in a Kinesis Data Analytics Studio notebook.", + "properties": { + "GlueDataCatalogConfiguration": { + "$ref": "#/definitions/GlueDataCatalogConfiguration", + "description": "The configuration parameters for the default Amazon Glue database. You use this database for Apache Flink SQL queries and table API transforms that you write in a Kinesis Data Analytics Studio notebook." + } + }, + "type": "object" + }, + "CheckpointConfiguration": { + "additionalProperties": false, + "description": "Describes an application's checkpointing configuration. Checkpointing is the process of persisting application state for fault tolerance. For more information, see Checkpoints for Fault Tolerance in the Apache Flink Documentation.", + "properties": { + "CheckpointInterval": { + "description": "Describes the interval in milliseconds between checkpoint operations.", + "format": "int64", + "maximum": 9223372036854775807, + "minimum": 1, + "type": "integer" + }, + "CheckpointingEnabled": { + "description": "Describes whether checkpointing is enabled for a Flink-based Kinesis Data Analytics application.", + "type": "boolean" + }, + "ConfigurationType": { + "description": "Describes whether the application uses Kinesis Data Analytics' default checkpointing behavior. You must set this property to `CUSTOM` in order to set the `CheckpointingEnabled`, `CheckpointInterval`, or `MinPauseBetweenCheckpoints` parameters.", + "enum": [ + "DEFAULT", + "CUSTOM" + ], + "type": "string" + }, + "MinPauseBetweenCheckpoints": { + "description": "Describes the minimum time in milliseconds after a checkpoint operation completes that a new checkpoint operation can start. If a checkpoint operation takes longer than the CheckpointInterval, the application otherwise performs continual checkpoint operations. For more information, see Tuning Checkpointing in the Apache Flink Documentation.", + "format": "int64", + "maximum": 9223372036854775807, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "ConfigurationType" + ], + "type": "object" + }, + "CodeContent": { + "additionalProperties": false, + "description": "Specifies either the application code, or the location of the application code, for a Flink-based Kinesis Data Analytics application.", + "properties": { + "S3ContentLocation": { + "$ref": "#/definitions/S3ContentLocation", + "description": "Information about the Amazon S3 bucket that contains the application code." + }, + "TextContent": { + "description": "The text-format code for a Flink-based Kinesis Data Analytics application.", + "maxLength": 102400, + "minLength": 1, + "type": "string" + }, + "ZipFileContent": { + "description": "The zip-format code for a Flink-based Kinesis Data Analytics application.", + "type": "string" + } + }, + "type": "object" + }, + "CustomArtifactConfiguration": { + "additionalProperties": false, + "description": "The configuration of connectors and user-defined functions.", + "properties": { + "ArtifactType": { + "description": "Set this to either `UDF` or `DEPENDENCY_JAR`. `UDF` stands for user-defined functions. This type of artifact must be in an S3 bucket. A `DEPENDENCY_JAR` can be in either Maven or an S3 bucket.", + "enum": [ + "DEPENDENCY_JAR", + "UDF" + ], + "type": "string" + }, + "MavenReference": { + "$ref": "#/definitions/MavenReference", + "description": "The parameters required to fully specify a Maven reference." + }, + "S3ContentLocation": { + "$ref": "#/definitions/S3ContentLocation", + "description": "The location of the custom artifacts." + } + }, + "required": [ + "ArtifactType" + ], + "type": "object" + }, + "CustomArtifactsConfiguration": { + "description": "A list of CustomArtifactConfiguration objects.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CustomArtifactConfiguration", + "description": "The configuration of connectors and user-defined functions." + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + }, + "DeployAsApplicationConfiguration": { + "additionalProperties": false, + "description": "The information required to deploy a Kinesis Data Analytics Studio notebook as an application with durable state.", + "properties": { + "S3ContentLocation": { + "$ref": "#/definitions/S3ContentBaseLocation", + "description": "The description of an Amazon S3 object that contains the Amazon Data Analytics application, including the Amazon Resource Name (ARN) of the S3 bucket, the name of the Amazon S3 object that contains the data, and the version number of the Amazon S3 object that contains the data." + } + }, + "required": [ + "S3ContentLocation" + ], + "type": "object" + }, + "EnvironmentProperties": { + "additionalProperties": false, + "description": "Describes execution properties for a Flink-based Kinesis Data Analytics application.", + "properties": { + "PropertyGroups": { + "description": "Describes the execution property groups.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PropertyGroup" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "FlinkApplicationConfiguration": { + "additionalProperties": false, + "description": "Describes configuration parameters for a Flink-based Kinesis Data Analytics application or a Studio notebook.", + "properties": { + "CheckpointConfiguration": { + "$ref": "#/definitions/CheckpointConfiguration", + "description": "Describes an application's checkpointing configuration. Checkpointing is the process of persisting application state for fault tolerance. For more information, see Checkpoints for Fault Tolerance in the Apache Flink Documentation." + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/MonitoringConfiguration", + "description": "Describes configuration parameters for Amazon CloudWatch logging for an application." + }, + "ParallelismConfiguration": { + "$ref": "#/definitions/ParallelismConfiguration", + "description": "Describes parameters for how an application executes multiple tasks simultaneously." + } + }, + "type": "object" + }, + "FlinkRunConfiguration": { + "additionalProperties": false, + "description": "Describes the starting parameters for a Flink-based Kinesis Data Analytics application.", + "properties": { + "AllowNonRestoredState": { + "description": "When restoring from a snapshot, specifies whether the runtime is allowed to skip a state that cannot be mapped to the new program. Defaults to false. If you update your application without specifying this parameter, AllowNonRestoredState will be set to false, even if it was previously set to true.", + "type": "boolean" + } + }, + "type": "object" + }, + "GlueDataCatalogConfiguration": { + "additionalProperties": false, + "description": "The configuration of the Glue Data Catalog that you use for Apache Flink SQL queries and table API transforms that you write in an application.", + "properties": { + "DatabaseARN": { + "$ref": "#/definitions/Arn", + "description": "The Amazon Resource Name (ARN) of the database." + } + }, + "type": "object" + }, + "Input": { + "additionalProperties": false, + "description": "When you configure the application input for a SQL-based Kinesis Data Analytics application, you specify the streaming source, the in-application stream name that is created, and the mapping between the two.", + "properties": { + "InputParallelism": { + "$ref": "#/definitions/InputParallelism", + "description": "Describes the number of in-application streams to create." + }, + "InputProcessingConfiguration": { + "$ref": "#/definitions/InputProcessingConfiguration", + "description": "The InputProcessingConfiguration for the input. An input processor transforms records as they are received from the stream, before the application's SQL code executes. Currently, the only input processing configuration available is InputLambdaProcessor." + }, + "InputSchema": { + "$ref": "#/definitions/InputSchema", + "description": "Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created." + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/KinesisFirehoseInput", + "description": "If the streaming source is an Amazon Kinesis Data Firehose delivery stream, identifies the delivery stream's ARN." + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/KinesisStreamsInput", + "description": "If the streaming source is an Amazon Kinesis data stream, identifies the stream's Amazon Resource Name (ARN)." + }, + "NamePrefix": { + "description": "The name prefix to use when creating an in-application stream. Suppose that you specify a prefix `\"MyInApplicationStream\"`. Kinesis Data Analytics then creates one or more (as per the InputParallelism count you specified) in-application streams with the names `\"MyInApplicationStream_001\"`, `\"MyInApplicationStream_002\"`, and so on.", + "maxLength": 32, + "minLength": 1, + "pattern": "^[^-\\s<>&]*$", + "type": "string" + } + }, + "required": [ + "NamePrefix", + "InputSchema" + ], + "type": "object" + }, + "InputLambdaProcessor": { + "additionalProperties": false, + "description": "An object that contains the Amazon Resource Name (ARN) of the Amazon Lambda function that is used to preprocess records in the stream in a SQL-based Kinesis Data Analytics application.", + "properties": { + "ResourceARN": { + "$ref": "#/definitions/Arn", + "description": "The ARN of the Amazon Lambda function that operates on records in the stream." + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "InputParallelism": { + "additionalProperties": false, + "description": "For a SQL-based Kinesis Data Analytics application, describes the number of in-application streams to create for a given streaming source.", + "properties": { + "Count": { + "description": "The number of in-application streams to create.", + "maximum": 64, + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "InputProcessingConfiguration": { + "additionalProperties": false, + "description": "For an SQL-based Amazon Kinesis Data Analytics application, describes a processor that is used to preprocess the records in the stream before being processed by your application code. Currently, the only input processor available is Amazon Lambda.", + "properties": { + "InputLambdaProcessor": { + "$ref": "#/definitions/InputLambdaProcessor", + "description": "The InputLambdaProcessor that is used to preprocess the records in the stream before being processed by your application code." + } + }, + "type": "object" + }, + "InputSchema": { + "additionalProperties": false, + "description": "For a SQL-based Kinesis Data Analytics application, describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream.", + "properties": { + "RecordColumns": { + "description": "A list of `RecordColumn` objects.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/RecordColumn" + }, + "maxItems": 1000, + "type": "array", + "uniqueItems": false + }, + "RecordEncoding": { + "description": "Specifies the encoding of the records in the streaming source. For example, UTF-8.", + "enum": [ + "UTF-8" + ], + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/RecordFormat", + "description": "Specifies the format of the records on the streaming source." + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "JSONMappingParameters": { + "additionalProperties": false, + "description": "For a SQL-based Kinesis Data Analytics application, provides additional mapping information when JSON is the record format on the streaming source.", + "properties": { + "RecordRowPath": { + "description": "The path to the top-level parent that contains the records.", + "maxLength": 65535, + "minLength": 1, + "pattern": "^(?=^\\$)(?=^\\S+$).*$", + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "KinesisFirehoseInput": { + "additionalProperties": false, + "description": "For a SQL-based Kinesis Data Analytics application, identifies a Kinesis Data Firehose delivery stream as the streaming source. You provide the delivery stream's Amazon Resource Name (ARN).", + "properties": { + "ResourceARN": { + "$ref": "#/definitions/Arn", + "description": "The Amazon Resource Name (ARN) of the delivery stream." + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "KinesisStreamsInput": { + "additionalProperties": false, + "description": "Identifies a Kinesis data stream as the streaming source. You provide the stream's Amazon Resource Name (ARN).", + "properties": { + "ResourceARN": { + "$ref": "#/definitions/Arn", + "description": "The ARN of the input Kinesis data stream to read." + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "MappingParameters": { + "additionalProperties": false, + "description": "When you configure a SQL-based Kinesis Data Analytics application's input at the time of creating or updating an application, provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source.", + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/CSVMappingParameters", + "description": "Provides additional mapping information when the record format uses delimiters (for example, CSV)." + }, + "JSONMappingParameters": { + "$ref": "#/definitions/JSONMappingParameters", + "description": "Provides additional mapping information when JSON is the record format on the streaming source." + } + }, + "type": "object" + }, + "MavenReference": { + "additionalProperties": false, + "description": "The information required to specify a Maven reference. You can use Maven references to specify dependency JAR files.", + "properties": { + "ArtifactId": { + "description": "The artifact ID of the Maven reference.", + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "GroupId": { + "description": "The group ID of the Maven reference.", + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "Version": { + "description": "The version of the Maven reference.", + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + } + }, + "required": [ + "ArtifactId", + "GroupId", + "Version" + ], + "type": "object" + }, + "MonitoringConfiguration": { + "additionalProperties": false, + "description": "Describes configuration parameters for Amazon CloudWatch logging for a Java-based Kinesis Data Analytics application. For more information about CloudWatch logging, see Monitoring.", + "properties": { + "ConfigurationType": { + "description": "Describes whether to use the default CloudWatch logging configuration for an application. You must set this property to CUSTOM in order to set the LogLevel or MetricsLevel parameters.", + "enum": [ + "DEFAULT", + "CUSTOM" + ], + "type": "string" + }, + "LogLevel": { + "description": "Describes the verbosity of the CloudWatch Logs for an application.", + "enum": [ + "DEBUG", + "INFO", + "WARN", + "ERROR" + ], + "type": "string" + }, + "MetricsLevel": { + "description": "Describes the granularity of the CloudWatch Logs for an application. The Parallelism level is not recommended for applications with a Parallelism over 64 due to excessive costs.", + "enum": [ + "APPLICATION", + "OPERATOR", + "PARALLELISM", + "TASK" + ], + "type": "string" + } + }, + "required": [ + "ConfigurationType" + ], + "type": "object" + }, + "ParallelismConfiguration": { + "additionalProperties": false, + "description": "Describes parameters for how a Flink-based Kinesis Data Analytics application executes multiple tasks simultaneously. For more information about parallelism, see Parallel Execution in the Apache Flink Documentation", + "properties": { + "AutoScalingEnabled": { + "description": "Describes whether the Kinesis Data Analytics service can increase the parallelism of the application in response to increased throughput.", + "type": "boolean" + }, + "ConfigurationType": { + "description": "Describes whether the application uses the default parallelism for the Kinesis Data Analytics service. You must set this property to `CUSTOM` in order to change your application's `AutoScalingEnabled`, `Parallelism`, or `ParallelismPerKPU` properties.", + "enum": [ + "CUSTOM", + "DEFAULT" + ], + "type": "string" + }, + "Parallelism": { + "description": "Describes the initial number of parallel tasks that a Java-based Kinesis Data Analytics application can perform. The Kinesis Data Analytics service can increase this number automatically if ParallelismConfiguration:AutoScalingEnabled is set to true.", + "minimum": 1, + "type": "integer" + }, + "ParallelismPerKPU": { + "description": "Describes the number of parallel tasks that a Java-based Kinesis Data Analytics application can perform per Kinesis Processing Unit (KPU) used by the application. For more information about KPUs, see Amazon Kinesis Data Analytics Pricing.", + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "ConfigurationType" + ], + "type": "object" + }, + "PropertyGroup": { + "additionalProperties": false, + "description": "Property key-value pairs passed into an application.", + "properties": { + "PropertyGroupId": { + "description": "Describes the key of an application execution property key-value pair.", + "maxLength": 50, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "PropertyMap": { + "additionalProperties": false, + "description": "Describes the value of an application execution property key-value pair.", + "maxProperties": 50, + "patternProperties": { + "^.{1,2048}$": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "RecordColumn": { + "additionalProperties": false, + "description": "For a SQL-based Kinesis Data Analytics application, describes the mapping of each data element in the streaming source to the corresponding column in the in-application stream.\nAlso used to describe the format of the reference data source.", + "properties": { + "Mapping": { + "description": "A reference to the data element in the streaming input or the reference data source.", + "maxLength": 65535, + "minLength": 1, + "type": "string" + }, + "Name": { + "description": "The name of the column that is created in the in-application input stream or reference table.", + "maxLength": 256, + "minLength": 1, + "pattern": "^[^-\\s<>&]*$", + "type": "string" + }, + "SqlType": { + "description": "The type of column created in the in-application input stream or reference table.", + "maxLength": 100, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "SqlType", + "Name" + ], + "type": "object" + }, + "RecordFormat": { + "additionalProperties": false, + "description": "For a SQL-based Kinesis Data Analytics application, describes the record format and relevant mapping information that should be applied to schematize the records on the stream.", + "properties": { + "MappingParameters": { + "$ref": "#/definitions/MappingParameters", + "description": "When you configure application input at the time of creating or updating an application, provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source." + }, + "RecordFormatType": { + "description": "The type of record format.", + "enum": [ + "CSV", + "JSON" + ], + "type": "string" + } + }, + "required": [ + "RecordFormatType" + ], + "type": "object" + }, + "RunConfiguration": { + "additionalProperties": false, + "description": "Identifies the run configuration (start parameters) of a Kinesis Data Analytics application. This section is evaluated only on stack updates for applications in running RUNNING state and has no effect during manual application start.", + "properties": { + "ApplicationRestoreConfiguration": { + "$ref": "#/definitions/ApplicationRestoreConfiguration", + "description": "Describes the restore behavior of a restarting application." + }, + "FlinkRunConfiguration": { + "$ref": "#/definitions/FlinkRunConfiguration", + "description": "Describes the starting parameters for a Flink-based Kinesis Data Analytics application." + } + }, + "type": "object" + }, + "S3ContentBaseLocation": { + "additionalProperties": false, + "description": "The base location of the Amazon Data Analytics application.", + "properties": { + "BasePath": { + "description": "The base path for the S3 bucket.", + "maxLength": 1024, + "minLength": 1, + "pattern": "^[a-zA-Z0-9/!-_.*'()]+$", + "type": "string" + }, + "BucketARN": { + "$ref": "#/definitions/Arn", + "description": "The Amazon Resource Name (ARN) of the S3 bucket." + } + }, + "required": [ + "BucketARN" + ], + "type": "object" + }, + "S3ContentLocation": { + "additionalProperties": false, + "description": "The location of an application or a custom artifact.", + "properties": { + "BucketARN": { + "$ref": "#/definitions/Arn", + "description": "The Amazon Resource Name (ARN) for the S3 bucket containing the application code." + }, + "FileKey": { + "description": "The file key for the object containing the application code.", + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "ObjectVersion": { + "description": "The version of the object containing the application code.", + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BucketARN", + "FileKey" + ], + "type": "object" + }, + "SqlApplicationConfiguration": { + "additionalProperties": false, + "description": "Describes the inputs, outputs, and reference data sources for a SQL-based Kinesis Data Analytics application.", + "properties": { + "Inputs": { + "description": "The array of Input objects describing the input streams used by the application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Input" + }, + "maxItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair that identifies an application.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that's 0 to 256 characters in length.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "description": "Describes the parameters of a VPC used by the application.", + "properties": { + "SecurityGroupIds": { + "description": "The array of SecurityGroup IDs used by the VPC configuration.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": false + }, + "SubnetIds": { + "description": "The array of Subnet IDs used by the VPC configuration.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "SecurityGroupIds", + "SubnetIds" + ], + "type": "object" + }, + "VpcConfigurations": { + "description": "The array of descriptions of VPC configurations available to the application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpcConfiguration", + "description": "Describes the parameters of a VPC used by the application." + }, + "maxItems": 1, + "type": "array", + "uniqueItems": false + }, + "ZeppelinApplicationConfiguration": { + "additionalProperties": false, + "description": "The configuration of a Kinesis Data Analytics Studio notebook.", + "properties": { + "CatalogConfiguration": { + "$ref": "#/definitions/CatalogConfiguration", + "description": "The Amazon Glue Data Catalog that you use in queries in a Kinesis Data Analytics Studio notebook." + }, + "CustomArtifactsConfiguration": { + "$ref": "#/definitions/CustomArtifactsConfiguration", + "description": "A list of CustomArtifactConfiguration objects." + }, + "DeployAsApplicationConfiguration": { + "$ref": "#/definitions/DeployAsApplicationConfiguration", + "description": "The information required to deploy a Kinesis Data Analytics Studio notebook as an application with durable state." + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/ZeppelinMonitoringConfiguration", + "description": "The monitoring configuration of a Kinesis Data Analytics Studio notebook." + } + }, + "type": "object" + }, + "ZeppelinMonitoringConfiguration": { + "additionalProperties": false, + "description": "Describes configuration parameters for Amazon CloudWatch logging for a Kinesis Data Analytics Studio notebook. For more information about CloudWatch logging, see Monitoring.", + "properties": { + "LogLevel": { + "description": "The verbosity of the CloudWatch Logs for an application. You can set it to `INFO`, `WARN`, `ERROR`, or `DEBUG`.", + "enum": [ + "DEBUG", + "INFO", + "WARN", + "ERROR" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Creates an Amazon Kinesis Data Analytics application. For information about creating a Kinesis Data Analytics application, see [Creating an Application](https://docs.aws.amazon.com/kinesisanalytics/latest/java/getting-started.html).", + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "kinesisanalytics:CreateApplication", + "kinesisanalytics:DescribeApplication", + "kinesisanalytics:ListTagsForResource", + "kinesisanalytics:UpdateApplicationMaintenanceConfiguration" + ] + }, + "delete": { + "permissions": [ + "kinesisanalytics:DescribeApplication", + "kinesisanalytics:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "kinesisanalytics:ListApplications" + ] + }, + "read": { + "permissions": [ + "kinesisanalytics:DescribeApplication", + "kinesisanalytics:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "kinesisanalytics:UpdateApplication", + "kinesisanalytics:DescribeApplication", + "kinesisanalytics:TagResource", + "kinesisanalytics:UntagResource", + "kinesisanalytics:AddApplicationVpcConfiguration", + "kinesisanalytics:DeleteApplicationVpcConfiguration", + "kinesisanalytics:UpdateApplicationMaintenanceConfiguration", + "kinesisanalytics:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApplicationName" + ], + "properties": { + "ApplicationConfiguration": { + "$ref": "#/definitions/ApplicationConfiguration", + "description": "Use this parameter to configure the application." + }, + "ApplicationDescription": { + "default": "", + "description": "The description of the application.", + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ApplicationMaintenanceConfiguration": { + "$ref": "#/definitions/ApplicationMaintenanceConfiguration", + "description": "Used to configure start of maintenance window." + }, + "ApplicationMode": { + "description": "To create a Kinesis Data Analytics Studio notebook, you must set the mode to `INTERACTIVE`. However, for a Kinesis Data Analytics for Apache Flink application, the mode is optional.", + "enum": [ + "INTERACTIVE", + "STREAMING" + ], + "type": "string" + }, + "ApplicationName": { + "description": "The name of the application.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.-]+$", + "type": "string" + }, + "RunConfiguration": { + "$ref": "#/definitions/RunConfiguration", + "description": "Specifies run configuration (start parameters) of a Kinesis Data Analytics application. Evaluated on update for RUNNING applications an only." + }, + "RuntimeEnvironment": { + "description": "The runtime environment for the application.", + "enum": [ + "SQL-1_0", + "FLINK-1_6", + "FLINK-1_8", + "ZEPPELIN-FLINK-1_0", + "FLINK-1_11", + "FLINK-1_13", + "ZEPPELIN-FLINK-2_0", + "FLINK-1_15", + "ZEPPELIN-FLINK-3_0" + ], + "type": "string" + }, + "ServiceExecutionRole": { + "$ref": "#/definitions/Arn", + "description": "Specifies the IAM role that the application uses to access external resources." + }, + "Tags": { + "description": "A list of one or more tags to assign to the application. A tag is a key-value pair that identifies an application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "RuntimeEnvironment", + "ServiceExecutionRole" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kinesisanalyticsv2.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::KinesisAnalyticsV2::Application", + "writeOnlyProperties": [ + "/properties/RunConfiguration", + "/properties/ApplicationConfiguration/EnvironmentProperties", + "/properties/ApplicationConfiguration/ApplicationCodeConfiguration/CodeContent/ZipFileContent" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesisfirehose-deliverystream.json new file mode 100644 index 0000000000..a492543478 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-kinesisfirehose-deliverystream.json @@ -0,0 +1,1275 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliveryStreamName", + "/properties/DeliveryStreamType", + "/properties/ElasticsearchDestinationConfiguration/VpcConfiguration", + "/properties/AmazonopensearchserviceDestinationConfiguration/VpcConfiguration", + "/properties/AmazonOpenSearchServerlessDestinationConfiguration/VpcConfiguration", + "/properties/KinesisStreamSourceConfiguration", + "/properties/MSKSourceConfiguration" + ], + "definitions": { + "AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "Connectivity": { + "enum": [ + "PUBLIC", + "PRIVATE" + ], + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + } + }, + "required": [ + "RoleARN", + "Connectivity" + ], + "type": "object" + }, + "BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "type": "string" + }, + "LogStreamName": { + "type": "string" + } + }, + "type": "object" + }, + "CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableColumns": { + "maxLength": 204800, + "minLength": 0, + "type": "string" + }, + "DataTableName": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/SchemaConfiguration" + } + }, + "type": "object" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "KeyType": { + "enum": [ + "AWS_OWNED_CMK", + "CUSTOMER_MANAGED_CMK" + ], + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/OpenXJsonSerDe" + } + }, + "type": "object" + }, + "DocumentIdOptions": { + "additionalProperties": false, + "properties": { + "DefaultDocumentIdFormat": { + "enum": [ + "FIREHOSE_DEFAULT", + "NO_DOCUMENT_ID" + ], + "type": "string" + } + }, + "required": [ + "DefaultDocumentIdFormat" + ], + "type": "object" + }, + "DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + } + }, + "type": "object" + }, + "ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "maxLength": 512, + "minLength": 1, + "pattern": "https:.*", + "type": "string" + }, + "DocumentIdOptions": { + "$ref": "#/definitions/DocumentIdOptions" + }, + "DomainARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "IndexName": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "IndexRotationPeriod": { + "enum": [ + "NoRotation", + "OneHour", + "OneDay", + "OneWeek", + "OneMonth" + ], + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/ElasticsearchRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "S3BackupMode": { + "enum": [ + "FailedDocumentsOnly", + "AllDocuments" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "TypeName": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/VpcConfiguration" + } + }, + "required": [ + "IndexName", + "S3Configuration", + "RoleARN" + ], + "type": "object" + }, + "ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "enum": [ + "NoEncryption" + ], + "type": "string" + } + }, + "type": "object" + }, + "ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Url": { + "maxLength": 1000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/HttpEndpointCommonAttribute" + }, + "maxItems": 50, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "ContentEncoding": { + "enum": [ + "NONE", + "GZIP" + ], + "type": "string" + } + }, + "type": "object" + }, + "InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/Deserializer" + } + }, + "type": "object" + }, + "KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + } + }, + "required": [ + "RoleARN", + "KinesisStreamARN" + ], + "type": "object" + }, + "MSKSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AuthenticationConfiguration" + }, + "MSKClusterARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "TopicName": { + "maxLength": 255, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\._\\-]+", + "type": "string" + } + }, + "required": [ + "MSKClusterARN", + "TopicName", + "AuthenticationConfiguration" + ], + "type": "object" + }, + "OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "integer" + }, + "StripeSizeBytes": { + "type": "integer" + } + }, + "type": "object" + }, + "OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/Serializer" + } + }, + "type": "object" + }, + "ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "integer" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "integer" + }, + "PageSizeBytes": { + "type": "integer" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/Processor" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/ProcessorParameter" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "RecordDeAggregation", + "Decompression", + "Lambda", + "MetadataExtraction", + "AppendDelimiterToRecord" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/CopyCommand" + }, + "Password": { + "maxLength": 512, + "minLength": 6, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/RedshiftRetryOptions" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "S3BackupMode": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "Username": { + "maxLength": 512, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "S3Configuration", + "Username", + "ClusterJDBCURL", + "CopyCommand", + "RoleARN", + "Password" + ], + "type": "object" + }, + "RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "maxLength": 2048, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "enum": [ + "UNCOMPRESSED", + "GZIP", + "ZIP", + "Snappy", + "HADOOP_SNAPPY" + ], + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Prefix": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "TableName": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/ParquetSerDe" + } + }, + "type": "object" + }, + "SplunkBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "integer" + }, + "SizeInMBs": { + "type": "integer" + } + }, + "type": "object" + }, + "SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/SplunkBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "maximum": 600, + "minimum": 180, + "type": "integer" + }, + "HECEndpoint": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "HECEndpointType": { + "enum": [ + "Raw", + "Event" + ], + "type": "string" + }, + "HECToken": { + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/S3DestinationConfiguration" + } + }, + "required": [ + "HECEndpoint", + "S3Configuration", + "HECToken", + "HECEndpointType" + ], + "type": "object" + }, + "SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@%]*$", + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "maxLength": 512, + "minLength": 1, + "pattern": "arn:.*", + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "items": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "RoleARN", + "SubnetIds", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::KinesisFirehose::DeliveryStream", + "handlers": { + "create": { + "permissions": [ + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream", + "iam:GetRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "firehose:DeleteDeliveryStream", + "firehose:DescribeDeliveryStream", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + }, + "list": { + "permissions": [ + "firehose:ListDeliveryStreams" + ] + }, + "read": { + "permissions": [ + "firehose:DescribeDeliveryStream", + "firehose:ListTagsForDeliveryStream" + ] + }, + "update": { + "permissions": [ + "firehose:UpdateDestination", + "firehose:DescribeDeliveryStream", + "firehose:StartDeliveryStreamEncryption", + "firehose:StopDeliveryStreamEncryption", + "firehose:ListTagsForDeliveryStream", + "firehose:TagDeliveryStream", + "firehose:UntagDeliveryStream", + "kms:CreateGrant", + "kms:RevokeGrant", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryStreamName" + ], + "properties": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AmazonopensearchserviceDestinationConfiguration" + }, + "Arn": { + "type": "string" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "maxLength": 64, + "minLength": 1, + "pattern": "[a-zA-Z0-9._-]+", + "type": "string" + }, + "DeliveryStreamType": { + "enum": [ + "DirectPut", + "KinesisStreamAsSource", + "MSKAsSource" + ], + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/KinesisStreamSourceConfiguration" + }, + "MSKSourceConfiguration": { + "$ref": "#/definitions/MSKSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/S3DestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::KinesisFirehose::DeliveryStream" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-logs-querydefinition.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-logs-querydefinition.json deleted file mode 100644 index 1b3d459124..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-logs-querydefinition.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "LogGroup": { - "maxLength": 512, - "minLength": 1, - "pattern": "[\\.\\-_/#A-Za-z0-9]+", - "type": "string" - } - }, - "description": "The resource schema for AWSLogs QueryDefinition", - "handlers": { - "create": { - "permissions": [ - "logs:PutQueryDefinition" - ] - }, - "delete": { - "permissions": [ - "logs:DeleteQueryDefinition" - ] - }, - "list": { - "permissions": [ - "logs:DescribeQueryDefinitions" - ] - }, - "read": { - "permissions": [ - "logs:DescribeQueryDefinitions" - ] - }, - "update": { - "permissions": [ - "logs:PutQueryDefinition" - ] - } - }, - "primaryIdentifier": [ - "/properties/QueryDefinitionId" - ], - "properties": { - "LogGroupNames": { - "description": "Optionally define specific log groups as part of your query definition", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogGroup", - "description": "LogGroup name" - }, - "type": "array" - }, - "Name": { - "description": "A name for the saved query definition", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "QueryDefinitionId": { - "description": "Unique identifier of a query definition", - "maxLength": 256, - "minLength": 0, - "type": "string" - }, - "QueryString": { - "description": "The query string to use for this definition", - "maxLength": 10000, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/QueryDefinitionId" - ], - "required": [ - "Name", - "QueryString" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", - "taggable": false, - "typeName": "AWS::Logs::QueryDefinition" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackage-originendpoint.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackage-originendpoint.json new file mode 100644 index 0000000000..4c829f1788 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediapackage-originendpoint.json @@ -0,0 +1,707 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Id" + ], + "definitions": { + "AdsOnDeliveryRestrictions": { + "description": "This setting allows the delivery restriction flags on SCTE-35 segmentation descriptors to determine whether a message signals an ad. Choosing \"NONE\" means no SCTE-35 messages become ads. Choosing \"RESTRICTED\" means SCTE-35 messages of the types specified in AdTriggers that contain delivery restrictions will be treated as ads. Choosing \"UNRESTRICTED\" means SCTE-35 messages of the types specified in AdTriggers that do not contain delivery restrictions will be treated as ads. Choosing \"BOTH\" means all SCTE-35 messages of the types specified in AdTriggers will be treated as ads. Note that Splice Insert messages do not have these flags and are always treated as ads if specified in AdTriggers.", + "enum": [ + "NONE", + "RESTRICTED", + "UNRESTRICTED", + "BOTH" + ], + "type": "string" + }, + "Authorization": { + "additionalProperties": false, + "description": "CDN Authorization credentials", + "properties": { + "CdnIdentifierSecret": { + "description": "The Amazon Resource Name (ARN) for the secret in Secrets Manager that your Content Distribution Network (CDN) uses for authorization to access your endpoint.", + "type": "string" + }, + "SecretsRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that allows MediaPackage to communicate with AWS Secrets Manager.", + "type": "string" + } + }, + "required": [ + "SecretsRoleArn", + "CdnIdentifierSecret" + ], + "type": "object" + }, + "CmafEncryption": { + "additionalProperties": false, + "description": "A Common Media Application Format (CMAF) encryption configuration.", + "properties": { + "ConstantInitializationVector": { + "description": "An optional 128-bit, 16-byte hex value represented by a 32-character string, used in conjunction with the key for encrypting blocks. If you don't specify a value, then MediaPackage creates the constant initialization vector (IV).", + "maxLength": 32, + "minLength": 32, + "pattern": "\\A[0-9a-fA-F]+\\Z", + "type": "string" + }, + "EncryptionMethod": { + "description": "The encryption method used", + "enum": [ + "SAMPLE_AES", + "AES_CTR" + ], + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "description": "Time (in seconds) between each encryption key rotation.", + "type": "integer" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "CmafPackage": { + "additionalProperties": false, + "description": "A Common Media Application Format (CMAF) packaging configuration.", + "properties": { + "Encryption": { + "$ref": "#/definitions/CmafEncryption" + }, + "HlsManifests": { + "description": "A list of HLS manifest configurations", + "items": { + "$ref": "#/definitions/HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "description": "Duration (in seconds) of each segment. Actual segments will be rounded to the nearest multiple of the source segment duration.", + "type": "integer" + }, + "SegmentPrefix": { + "description": "An optional custom string that is prepended to the name of each segment. If not specified, it defaults to the ChannelId.", + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + } + }, + "type": "object" + }, + "DashEncryption": { + "additionalProperties": false, + "description": "A Dynamic Adaptive Streaming over HTTP (DASH) encryption configuration.", + "properties": { + "KeyRotationIntervalSeconds": { + "description": "Time (in seconds) between each encryption key rotation.", + "type": "integer" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "DashPackage": { + "additionalProperties": false, + "description": "A Dynamic Adaptive Streaming over HTTP (DASH) packaging configuration.", + "properties": { + "AdTriggers": { + "description": "A list of SCTE-35 message types that are treated as ad markers in the output. If empty, no ad markers are output. Specify multiple items to create ad markers for all of the included message types.", + "items": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY" + ], + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "$ref": "#/definitions/AdsOnDeliveryRestrictions" + }, + "Encryption": { + "$ref": "#/definitions/DashEncryption" + }, + "IncludeIframeOnlyStream": { + "description": "When enabled, an I-Frame only stream will be included in the output.", + "type": "boolean" + }, + "ManifestLayout": { + "description": "Determines the position of some tags in the Media Presentation Description (MPD). When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation. When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.", + "enum": [ + "FULL", + "COMPACT", + "DRM_TOP_LEVEL_COMPACT" + ], + "type": "string" + }, + "ManifestWindowSeconds": { + "description": "Time window (in seconds) contained in each manifest.", + "type": "integer" + }, + "MinBufferTimeSeconds": { + "description": "Minimum duration (in seconds) that a player will buffer media before starting the presentation.", + "type": "integer" + }, + "MinUpdatePeriodSeconds": { + "description": "Minimum duration (in seconds) between potential changes to the Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD).", + "type": "integer" + }, + "PeriodTriggers": { + "description": "A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH) Media Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not be partitioned into more than one period. If the list contains \"ADS\", new periods will be created where the Channel source contains SCTE-35 ad markers.", + "items": { + "enum": [ + "ADS" + ], + "type": "string" + }, + "type": "array" + }, + "Profile": { + "description": "The Dynamic Adaptive Streaming over HTTP (DASH) profile type. When set to \"HBBTV_1_5\", HbbTV 1.5 compliant output is enabled.", + "enum": [ + "NONE", + "HBBTV_1_5", + "HYBRIDCAST", + "DVB_DASH_2014" + ], + "type": "string" + }, + "SegmentDurationSeconds": { + "description": "Duration (in seconds) of each segment. Actual segments will be rounded to the nearest multiple of the source segment duration.", + "type": "integer" + }, + "SegmentTemplateFormat": { + "description": "Determines the type of SegmentTemplate included in the Media Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs. When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.", + "enum": [ + "NUMBER_WITH_TIMELINE", + "TIME_WITH_TIMELINE", + "NUMBER_WITH_DURATION" + ], + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "description": "Duration (in seconds) to delay live content before presentation.", + "type": "integer" + }, + "UtcTiming": { + "description": "Determines the type of UTCTiming included in the Media Presentation Description (MPD)", + "enum": [ + "HTTP-XSDATE", + "HTTP-ISO", + "HTTP-HEAD", + "NONE" + ], + "type": "string" + }, + "UtcTimingUri": { + "description": "Specifies the value attribute of the UTCTiming field when utcTiming is set to HTTP-ISO, HTTP-HEAD or HTTP-XSDATE", + "type": "string" + } + }, + "type": "object" + }, + "EncryptionContractConfiguration": { + "additionalProperties": false, + "description": "The configuration to use for encrypting one or more content tracks separately for endpoints that use SPEKE 2.0.", + "properties": { + "PresetSpeke20Audio": { + "description": "A collection of audio encryption presets.", + "enum": [ + "PRESET-AUDIO-1", + "PRESET-AUDIO-2", + "PRESET-AUDIO-3", + "SHARED", + "UNENCRYPTED" + ], + "type": "string" + }, + "PresetSpeke20Video": { + "description": "A collection of video encryption presets.", + "enum": [ + "PRESET-VIDEO-1", + "PRESET-VIDEO-2", + "PRESET-VIDEO-3", + "PRESET-VIDEO-4", + "PRESET-VIDEO-5", + "PRESET-VIDEO-6", + "PRESET-VIDEO-7", + "PRESET-VIDEO-8", + "SHARED", + "UNENCRYPTED" + ], + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], + "type": "object" + }, + "HlsEncryption": { + "additionalProperties": false, + "description": "An HTTP Live Streaming (HLS) encryption configuration.", + "properties": { + "ConstantInitializationVector": { + "description": "A constant initialization vector for encryption (optional). When not specified the initialization vector will be periodically rotated.", + "type": "string" + }, + "EncryptionMethod": { + "description": "The encryption method to use.", + "enum": [ + "AES_128", + "SAMPLE_AES" + ], + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "description": "Interval (in seconds) between each encryption key rotation.", + "type": "integer" + }, + "RepeatExtXKey": { + "description": "When enabled, the EXT-X-KEY tag will be repeated in output manifests.", + "type": "boolean" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "HlsManifest": { + "additionalProperties": false, + "description": "A HTTP Live Streaming (HLS) manifest configuration.", + "properties": { + "AdMarkers": { + "description": "This setting controls how ad markers are included in the packaged OriginEndpoint. \"NONE\" will omit all SCTE-35 ad markers from the output. \"PASSTHROUGH\" causes the manifest to contain a copy of the SCTE-35 ad markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest. \"SCTE35_ENHANCED\" generates ad markers and blackout tags based on SCTE-35 messages in the input source. \"DATERANGE\" inserts EXT-X-DATERANGE tags to signal ad and program transition events in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value that is greater than 0.", + "enum": [ + "NONE", + "SCTE35_ENHANCED", + "PASSTHROUGH", + "DATERANGE" + ], + "type": "string" + }, + "AdTriggers": { + "description": "A list of SCTE-35 message types that are treated as ad markers in the output. If empty, no ad markers are output. Specify multiple items to create ad markers for all of the included message types.", + "items": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY" + ], + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "$ref": "#/definitions/AdsOnDeliveryRestrictions" + }, + "Id": { + "description": "The ID of the manifest. The ID must be unique within the OriginEndpoint and it cannot be changed after it is created.", + "type": "string" + }, + "IncludeIframeOnlyStream": { + "description": "When enabled, an I-Frame only stream will be included in the output.", + "type": "boolean" + }, + "ManifestName": { + "description": "An optional short string appended to the end of the OriginEndpoint URL. If not specified, defaults to the manifestName for the OriginEndpoint.", + "type": "string" + }, + "PlaylistType": { + "description": "The HTTP Live Streaming (HLS) playlist type. When either \"EVENT\" or \"VOD\" is specified, a corresponding EXT-X-PLAYLIST-TYPE entry will be included in the media playlist.", + "enum": [ + "NONE", + "EVENT", + "VOD" + ], + "type": "string" + }, + "PlaylistWindowSeconds": { + "description": "Time window (in seconds) contained in each parent manifest.", + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "description": "The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag inserted into manifests. Additionally, when an interval is specified ID3Timed Metadata messages will be generated every 5 seconds using the ingest time of the content. If the interval is not specified, or set to 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no ID3Timed Metadata messages will be generated. Note that irrespective of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, it will be passed through to HLS output.", + "type": "integer" + }, + "Url": { + "description": "The URL of the packaged OriginEndpoint for consumption.", + "type": "string" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "HlsPackage": { + "additionalProperties": false, + "description": "An HTTP Live Streaming (HLS) packaging configuration.", + "properties": { + "AdMarkers": { + "description": "This setting controls how ad markers are included in the packaged OriginEndpoint. \"NONE\" will omit all SCTE-35 ad markers from the output. \"PASSTHROUGH\" causes the manifest to contain a copy of the SCTE-35 ad markers (comments) taken directly from the input HTTP Live Streaming (HLS) manifest. \"SCTE35_ENHANCED\" generates ad markers and blackout tags based on SCTE-35 messages in the input source. \"DATERANGE\" inserts EXT-X-DATERANGE tags to signal ad and program transition events in HLS and CMAF manifests. For this option, you must set a programDateTimeIntervalSeconds value that is greater than 0.", + "enum": [ + "NONE", + "SCTE35_ENHANCED", + "PASSTHROUGH", + "DATERANGE" + ], + "type": "string" + }, + "AdTriggers": { + "description": "A list of SCTE-35 message types that are treated as ad markers in the output. If empty, no ad markers are output. Specify multiple items to create ad markers for all of the included message types.", + "items": { + "enum": [ + "SPLICE_INSERT", + "BREAK", + "PROVIDER_ADVERTISEMENT", + "DISTRIBUTOR_ADVERTISEMENT", + "PROVIDER_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_PLACEMENT_OPPORTUNITY", + "PROVIDER_OVERLAY_PLACEMENT_OPPORTUNITY", + "DISTRIBUTOR_OVERLAY_PLACEMENT_OPPORTUNITY" + ], + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "$ref": "#/definitions/AdsOnDeliveryRestrictions" + }, + "Encryption": { + "$ref": "#/definitions/HlsEncryption" + }, + "IncludeDvbSubtitles": { + "description": "When enabled, MediaPackage passes through digital video broadcasting (DVB) subtitles into the output.", + "type": "boolean" + }, + "IncludeIframeOnlyStream": { + "description": "When enabled, an I-Frame only stream will be included in the output.", + "type": "boolean" + }, + "PlaylistType": { + "description": "The HTTP Live Streaming (HLS) playlist type. When either \"EVENT\" or \"VOD\" is specified, a corresponding EXT-X-PLAYLIST-TYPE entry will be included in the media playlist.", + "enum": [ + "NONE", + "EVENT", + "VOD" + ], + "type": "string" + }, + "PlaylistWindowSeconds": { + "description": "Time window (in seconds) contained in each parent manifest.", + "type": "integer" + }, + "ProgramDateTimeIntervalSeconds": { + "description": "The interval (in seconds) between each EXT-X-PROGRAM-DATE-TIME tag inserted into manifests. Additionally, when an interval is specified ID3Timed Metadata messages will be generated every 5 seconds using the ingest time of the content. If the interval is not specified, or set to 0, then no EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and no ID3Timed Metadata messages will be generated. Note that irrespective of this parameter, if any ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input, it will be passed through to HLS output.", + "type": "integer" + }, + "SegmentDurationSeconds": { + "description": "Duration (in seconds) of each fragment. Actual fragments will be rounded to the nearest multiple of the source fragment duration.", + "type": "integer" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + }, + "UseAudioRenditionGroup": { + "description": "When enabled, audio streams will be placed in rendition groups in the output.", + "type": "boolean" + } + }, + "type": "object" + }, + "MssEncryption": { + "additionalProperties": false, + "description": "A Microsoft Smooth Streaming (MSS) encryption configuration.", + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "MssPackage": { + "additionalProperties": false, + "description": "A Microsoft Smooth Streaming (MSS) packaging configuration.", + "properties": { + "Encryption": { + "$ref": "#/definitions/MssEncryption" + }, + "ManifestWindowSeconds": { + "description": "The time window (in seconds) contained in each manifest.", + "type": "integer" + }, + "SegmentDurationSeconds": { + "description": "The duration (in seconds) of each segment.", + "type": "integer" + }, + "StreamSelection": { + "$ref": "#/definitions/StreamSelection" + } + }, + "type": "object" + }, + "SpekeKeyProvider": { + "additionalProperties": false, + "description": "A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.", + "properties": { + "CertificateArn": { + "description": "An Amazon Resource Name (ARN) of a Certificate Manager certificate that MediaPackage will use for enforcing secure end-to-end data transfer with the key provider service.", + "type": "string" + }, + "EncryptionContractConfiguration": { + "$ref": "#/definitions/EncryptionContractConfiguration" + }, + "ResourceId": { + "description": "The resource ID to include in key requests.", + "type": "string" + }, + "RoleArn": { + "description": "An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage will assume when accessing the key provider service.", + "type": "string" + }, + "SystemIds": { + "description": "The system IDs to include in key requests.", + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "description": "The URL of the external key provider service.", + "type": "string" + } + }, + "required": [ + "ResourceId", + "SystemIds", + "Url", + "RoleArn" + ], + "type": "object" + }, + "StreamSelection": { + "additionalProperties": false, + "description": "A StreamSelection configuration.", + "properties": { + "MaxVideoBitsPerSecond": { + "description": "The maximum video bitrate (bps) to include in output.", + "type": "integer" + }, + "MinVideoBitsPerSecond": { + "description": "The minimum video bitrate (bps) to include in output.", + "type": "integer" + }, + "StreamOrder": { + "description": "A directive that determines the order of streams in the output.", + "enum": [ + "ORIGINAL", + "VIDEO_BITRATE_ASCENDING", + "VIDEO_BITRATE_DESCENDING" + ], + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "deprecatedProperties": [ + "/properties/HlsPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Audio", + "/properties/HlsPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Video", + "/properties/MssPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Audio", + "/properties/MssPackage/Encryption/SpekeKeyProvider/EncryptionContractConfiguration/PresetSpeke20Video", + "/properties/CmafPackage/HlsManifests/*/Url" + ], + "description": "Resource schema for AWS::MediaPackage::OriginEndpoint", + "handlers": { + "create": { + "permissions": [ + "mediapackage:CreateOriginEndpoint", + "mediapackage:DescribeOriginEndpoint", + "mediapackage:DescribeChannel", + "mediapackage:TagResource", + "iam:PassRole", + "acm:DescribeCertificate" + ] + }, + "delete": { + "permissions": [ + "mediapackage:DeleteOriginEndpoint" + ] + }, + "list": { + "permissions": [ + "mediapackage:ListOriginEndpoints" + ] + }, + "read": { + "permissions": [ + "mediapackage:DescribeOriginEndpoint" + ] + }, + "update": { + "permissions": [ + "mediapackage:UpdateOriginEndpoint", + "iam:PassRole" + ] + } + }, + "oneOf": [ + { + "required": [ + "HlsPackage" + ] + }, + { + "required": [ + "DashPackage" + ] + }, + { + "required": [ + "MssPackage" + ] + }, + { + "required": [ + "CmafPackage" + ] + } + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) assigned to the OriginEndpoint.", + "type": "string" + }, + "Authorization": { + "$ref": "#/definitions/Authorization" + }, + "ChannelId": { + "description": "The ID of the Channel the OriginEndpoint is associated with.", + "type": "string" + }, + "CmafPackage": { + "$ref": "#/definitions/CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/DashPackage" + }, + "Description": { + "description": "A short text description of the OriginEndpoint.", + "type": "string" + }, + "HlsPackage": { + "$ref": "#/definitions/HlsPackage" + }, + "Id": { + "description": "The ID of the OriginEndpoint.", + "maxLength": 256, + "minLength": 1, + "pattern": "\\A[0-9a-zA-Z-_]+\\Z", + "type": "string" + }, + "ManifestName": { + "description": "A short string appended to the end of the OriginEndpoint URL.", + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/MssPackage" + }, + "Origination": { + "description": "Control whether origination of video is allowed for this OriginEndpoint. If set to ALLOW, the OriginEndpoint may by requested, pursuant to any other form of access control. If set to DENY, the OriginEndpoint may not be requested. This can be helpful for Live to VOD harvesting, or for temporarily disabling origination", + "enum": [ + "ALLOW", + "DENY" + ], + "type": "string" + }, + "StartoverWindowSeconds": { + "description": "Maximum duration (seconds) of content to retain for startover playback. If not specified, startover playback will be disabled for the OriginEndpoint.", + "type": "integer" + }, + "Tags": { + "description": "A collection of tags associated with a resource", + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TimeDelaySeconds": { + "description": "Amount of delay (seconds) to enforce on the playback of live content. If not specified, there will be no time delay in effect for the OriginEndpoint.", + "type": "integer" + }, + "Url": { + "description": "The URL of the packaged OriginEndpoint for consumption.", + "type": "string" + }, + "Whitelist": { + "description": "A list of source IP CIDR blocks that will be allowed to access the OriginEndpoint.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Url" + ], + "required": [ + "Id", + "ChannelId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::MediaPackage::OriginEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-neptunegraph-graph.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-neptunegraph-graph.json new file mode 100644 index 0000000000..718d9e8197 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-neptunegraph-graph.json @@ -0,0 +1,190 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/GraphName" + ] + ], + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/ProvisionedMemory" + ], + "createOnlyProperties": [ + "/properties/GraphName", + "/properties/ReplicaCount", + "/properties/VectorSearchConfiguration" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VectorSearchConfiguration": { + "additionalProperties": false, + "description": "The vector search configuration.", + "properties": { + "VectorSearchDimension": { + "description": "The vector search dimension", + "type": "integer" + } + }, + "required": [ + "VectorSearchDimension" + ], + "type": "object" + } + }, + "description": "The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph.", + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "neptune-graph:CreateGraph", + "neptune-graph:GetGraph", + "neptune-graph:ListTagsForResource", + "neptune-graph:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "neptune-graph:DeleteGraph", + "neptune-graph:GetGraph", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "neptune-graph:GetGraph", + "neptune-graph:ListGraphs", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "neptune-graph:GetGraph", + "neptune-graph:ListTagsForResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "iam:PassRole", + "neptune-graph:GetGraph", + "neptune-graph:ListTagsForResource", + "neptune-graph:TagResource", + "neptune-graph:UntagResource", + "neptune-graph:UpdateGraph", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/GraphId" + ], + "properties": { + "DeletionProtection": { + "description": "Value that indicates whether the Graph has deletion protection enabled. The graph can't be deleted when deletion protection is enabled.\n\n_Default_: If not specified, the default value is true.", + "type": "boolean" + }, + "Endpoint": { + "description": "The connection endpoint for the graph. For example: `g-12a3bcdef4.us-east-1.neptune-graph.amazonaws.com`", + "type": "string" + }, + "GraphArn": { + "description": "Graph resource ARN", + "type": "string" + }, + "GraphId": { + "description": "The auto-generated id assigned by the service.", + "type": "string" + }, + "GraphName": { + "description": "Contains a user-supplied name for the Graph. \n\nIf you don't specify a name, we generate a unique Graph Name using a combination of Stack Name and a UUID comprising of 4 characters.\n\n_Important_: If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$", + "type": "string" + }, + "ProvisionedMemory": { + "description": "Memory for the Graph.", + "type": "integer" + }, + "PublicConnectivity": { + "description": "Specifies whether the Graph can be reached over the internet. Access to all graphs requires IAM authentication.\n\nWhen the Graph is publicly reachable, its Domain Name System (DNS) endpoint resolves to the public IP address from the internet.\n\nWhen the Graph isn't publicly reachable, you need to create a PrivateGraphEndpoint in a given VPC to ensure the DNS name resolves to a private IP address that is reachable from the VPC.\n\n_Default_: If not specified, the default value is false.", + "type": "boolean" + }, + "ReplicaCount": { + "description": "Specifies the number of replicas you want when finished. All replicas will be provisioned in different availability zones.\n\nReplica Count should always be less than or equal to 2.\n\n_Default_: If not specified, the default value is 1.", + "type": "integer" + }, + "Tags": { + "description": "The tags associated with this graph.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "VectorSearchConfiguration": { + "$ref": "#/definitions/VectorSearchConfiguration", + "description": "Vector Search Configuration" + } + }, + "propertyTransform": { + "/properties/GraphId": "$lowercase(GraphId)", + "/properties/GraphName": "$lowercase(GraphName)" + }, + "readOnlyProperties": [ + "/properties/GraphArn", + "/properties/GraphId", + "/properties/Endpoint" + ], + "required": [ + "ProvisionedMemory" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptunegraph", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NeptuneGraph::Graph" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-neptunegraph-privategraphendpoint.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-neptunegraph-privategraphendpoint.json new file mode 100644 index 0000000000..91cfae40a4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-neptunegraph-privategraphendpoint.json @@ -0,0 +1,132 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/GraphIdentifier", + "/properties/VpcId" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GraphIdentifier", + "/properties/SecurityGroupIds", + "/properties/SubnetIds", + "/properties/VpcId" + ], + "description": "The AWS::NeptuneGraph::PrivateGraphEndpoint resource creates an Amazon NeptuneGraph PrivateGraphEndpoint.", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpcEndpoint", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:DescribeVpcAttribute", + "ec2:DescribeAvailabilityZones", + "ec2:ModifyVpcEndpoint", + "route53:AssociateVPCWithHostedZone", + "iam:PassRole", + "neptune-graph:CreatePrivateGraphEndpoint", + "neptune-graph:GetPrivateGraphEndpoint", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "ec2:DeleteVpcEndpoints", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:DescribeVpcAttribute", + "ec2:DescribeAvailabilityZones", + "ec2:ModifyVpcEndpoint", + "route53:DisassociateVPCFromHostedZone", + "neptune-graph:DeletePrivateGraphEndpoint", + "neptune-graph:GetPrivateGraphEndpoint" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "neptune-graph:GetPrivateGraphEndpoint", + "neptune-graph:ListPrivateGraphEndpoints" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "neptune-graph:GetPrivateGraphEndpoint" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "iam:PassRole", + "neptune-graph:GetPrivateGraphEndpoint" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/PrivateGraphEndpointIdentifier" + ], + "properties": { + "GraphIdentifier": { + "description": "The auto-generated Graph Id assigned by the service.", + "type": "string" + }, + "PrivateGraphEndpointIdentifier": { + "description": "PrivateGraphEndpoint resource identifier generated by concatenating the associated GraphIdentifier and VpcId with an underscore separator.\n\n For example, if GraphIdentifier is `g-12a3bcdef4` and VpcId is `vpc-0a12bc34567de8f90`, the generated PrivateGraphEndpointIdentifier will be `g-12a3bcdef4_vpc-0a12bc34567de8f90`", + "type": "string" + }, + "SecurityGroupIds": { + "description": "The security group Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "description": "The subnet Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcEndpointId": { + "description": "VPC endpoint that provides a private connection between the Graph and specified VPC.", + "type": "string" + }, + "VpcId": { + "description": "The VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.", + "type": "string" + } + }, + "propertyTransform": { + "/properties/GraphIdentifier": "$lowercase(GraphIdentifier)" + }, + "readOnlyProperties": [ + "/properties/PrivateGraphEndpointIdentifier", + "/properties/VpcEndpointId" + ], + "required": [ + "GraphIdentifier", + "VpcId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptunegraph", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::NeptuneGraph::PrivateGraphEndpoint", + "writeOnlyProperties": [ + "/properties/GraphIdentifier", + "/properties/SecurityGroupIds" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-redshift-cluster.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-redshift-cluster.json new file mode 100644 index 0000000000..1adaa74682 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-redshift-cluster.json @@ -0,0 +1,439 @@ +{ + "additionalProperties": false, + "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": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "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": { + "description": "Major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster. Default value is True", + "type": "boolean" + }, + "AquaConfigurationStatus": { + "description": "The value represents how the cluster is configured to use AQUA (Advanced Query Accelerator) after the cluster is restored. Possible values include the following.\n\nenabled - Use AQUA if it is available for the current Region and Amazon Redshift node type.\ndisabled - Don't use AQUA.\nauto - Amazon Redshift determines whether to use AQUA.\n", + "type": "string" + }, + "AutomatedSnapshotRetentionPeriod": { + "description": "The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Default value is 1", + "type": "integer" + }, + "AvailabilityZone": { + "description": "The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the cluster. Default: A random, system-chosen Availability Zone in the region that is specified by the endpoint", + "type": "string" + }, + "AvailabilityZoneRelocation": { + "description": "The option to enable relocation for an Amazon Redshift cluster between Availability Zones after the cluster modification is complete.", + "type": "boolean" + }, + "AvailabilityZoneRelocationStatus": { + "description": "The availability zone relocation status of the cluster", + "type": "string" + }, + "Classic": { + "description": "A boolean value indicating whether the resize operation is using the classic resize process. If you don't provide this parameter or set the value to false , the resize type is elastic.", + "type": "boolean" + }, + "ClusterIdentifier": { + "description": "A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. All alphabetical characters must be lower case, no hypens at the end, no two consecutive hyphens. Cluster name should be unique for all clusters within an AWS account", + "maxLength": 63, + "type": "string" + }, + "ClusterNamespaceArn": { + "description": "The Amazon Resource Name (ARN) of the cluster namespace.", + "type": "string" + }, + "ClusterParameterGroupName": { + "description": "The name of the parameter group to be associated with this cluster.", + "maxLength": 255, + "type": "string" + }, + "ClusterSecurityGroups": { + "description": "A list of security groups to be associated with this cluster.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ClusterSubnetGroupName": { + "description": "The name of a cluster subnet group to be associated with this cluster.", + "type": "string" + }, + "ClusterType": { + "description": "The type of the cluster. When cluster type is specified as single-node, the NumberOfNodes parameter is not required and if multi-node, the NumberOfNodes parameter is required", + "type": "string" + }, + "ClusterVersion": { + "description": "The version of the Amazon Redshift engine software that you want to deploy on the cluster.The version selected runs on all the nodes in the cluster.", + "type": "string" + }, + "DBName": { + "description": "The name of the first database to be created when the cluster is created. To create additional databases after the cluster is created, connect to the cluster with a SQL client and use SQL commands to create a database.", + "type": "string" + }, + "DeferMaintenance": { + "description": "A boolean indicating whether to enable the deferred maintenance window.", + "type": "boolean" + }, + "DeferMaintenanceDuration": { + "description": "An integer indicating the duration of the maintenance window in days. If you specify a duration, you can't specify an end time. The duration must be 45 days or less.", + "type": "integer" + }, + "DeferMaintenanceEndTime": { + "description": "A timestamp indicating end time for the deferred maintenance window. If you specify an end time, you can't specify a duration.", + "type": "string" + }, + "DeferMaintenanceIdentifier": { + "description": "A unique identifier for the deferred maintenance window.", + "type": "string" + }, + "DeferMaintenanceStartTime": { + "description": "A timestamp indicating the start time for the deferred maintenance window.", + "type": "string" + }, + "DestinationRegion": { + "description": "The destination AWS Region that you want to copy snapshots to. Constraints: Must be the name of a valid AWS Region. For more information, see Regions and Endpoints in the Amazon Web Services [https://docs.aws.amazon.com/general/latest/gr/rande.html#redshift_region] General Reference", + "type": "string" + }, + "ElasticIp": { + "description": "The Elastic IP (EIP) address for the cluster.", + "type": "string" + }, + "Encrypted": { + "description": "If true, the data in the cluster is encrypted at rest.", + "type": "boolean" + }, + "Endpoint": { + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "EnhancedVpcRouting": { + "description": "An option that specifies whether to create the cluster with enhanced VPC routing enabled. To create a cluster that uses enhanced VPC routing, the cluster must be in a VPC. For more information, see Enhanced VPC Routing in the Amazon Redshift Cluster Management Guide.\n\nIf this option is true , enhanced VPC routing is enabled.\n\nDefault: false", + "type": "boolean" + }, + "HsmClientCertificateIdentifier": { + "description": "Specifies the name of the HSM client certificate the Amazon Redshift cluster uses to retrieve the data encryption keys stored in an HSM", + "type": "string" + }, + "HsmConfigurationIdentifier": { + "description": "Specifies the name of the HSM configuration that contains the information the Amazon Redshift cluster can use to retrieve and store keys in an HSM.", + "type": "string" + }, + "IamRoles": { + "description": "A list of AWS Identity and Access Management (IAM) roles that can be used by the cluster to access other AWS services. You must supply the IAM roles in their Amazon Resource Name (ARN) format. You can supply up to 50 IAM roles in a single request", + "insertionOrder": false, + "items": { + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "KmsKeyId": { + "description": "The AWS Key Management Service (KMS) key ID of the encryption key that you want to use to encrypt data in the cluster.", + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/LoggingProperties" + }, + "MaintenanceTrackName": { + "description": "The name for the maintenance track that you want to assign for the cluster. This name change is asynchronous. The new track name stays in the PendingModifiedValues for the cluster until the next maintenance window. When the maintenance track changes, the cluster is switched to the latest cluster release available for the maintenance track. At this point, the maintenance track name is applied.", + "type": "string" + }, + "ManageMasterPassword": { + "description": "A boolean indicating if the redshift cluster's admin user credentials is managed by Redshift or not. You can't use MasterUserPassword if ManageMasterPassword is true. If ManageMasterPassword is false or not set, Amazon Redshift uses MasterUserPassword for the admin user account's password.", + "type": "boolean" + }, + "ManualSnapshotRetentionPeriod": { + "description": "The number of days to retain newly copied snapshots in the destination AWS Region after they are copied from the source AWS Region. If the value is -1, the manual snapshot is retained indefinitely.\n\nThe value must be either -1 or an integer between 1 and 3,653.", + "type": "integer" + }, + "MasterPasswordSecretArn": { + "description": "The Amazon Resource Name (ARN) for the cluster's admin user credentials secret.", + "type": "string" + }, + "MasterPasswordSecretKmsKeyId": { + "description": "The ID of the Key Management Service (KMS) key used to encrypt and store the cluster's admin user credentials secret.", + "type": "string" + }, + "MasterUserPassword": { + "description": "The password associated with the master user account for the cluster that is being created. You can't use MasterUserPassword if ManageMasterPassword is true. Password must be between 8 and 64 characters in length, should have at least one uppercase letter.Must contain at least one lowercase letter.Must contain one number.Can be any printable ASCII character.", + "maxLength": 64, + "type": "string" + }, + "MasterUsername": { + "description": "The user name associated with the master user account for the cluster that is being created. The user name can't be PUBLIC and first character must be a letter.", + "maxLength": 128, + "type": "string" + }, + "MultiAZ": { + "description": "A boolean indicating if the redshift cluster is multi-az or not. If you don't provide this parameter or set the value to false, the redshift cluster will be single-az.", + "type": "boolean" + }, + "NamespaceResourcePolicy": { + "description": "The namespace resource policy document that will be attached to a Redshift cluster.", + "type": "object" + }, + "NodeType": { + "cfnRegionSchema": "aws_redshift_cluster/nodetype_enum", + "description": "The node type to be provisioned for the cluster.Valid Values: ds2.xlarge | ds2.8xlarge | dc1.large | dc1.8xlarge | dc2.large | dc2.8xlarge | ra3.4xlarge | ra3.16xlarge", + "type": "string" + }, + "NumberOfNodes": { + "description": "The number of compute nodes in the cluster. This parameter is required when the ClusterType parameter is specified as multi-node.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "OwnerAccount": { + "type": "string" + }, + "Port": { + "description": "The port number on which the cluster accepts incoming connections. The cluster is accessible only via the JDBC and ODBC connection strings", + "type": "integer" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range (in UTC) during which automated cluster maintenance can occur.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "If true, the cluster can be accessed from a public network.", + "type": "boolean" + }, + "ResourceAction": { + "description": "The Redshift operation to be performed. Resource Action supports pause-cluster, resume-cluster, failover-primary-compute APIs", + "type": "string" + }, + "RevisionTarget": { + "description": "The identifier of the database revision. You can retrieve this value from the response to the DescribeClusterDbRevisions request.", + "type": "string" + }, + "RotateEncryptionKey": { + "description": "A boolean indicating if we want to rotate Encryption Keys.", + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "description": "The name of the cluster the source snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.", + "type": "string" + }, + "SnapshotCopyGrantName": { + "description": "The name of the snapshot copy grant to use when snapshots of an AWS KMS-encrypted cluster are copied to the destination region.", + "type": "string" + }, + "SnapshotCopyManual": { + "description": "Indicates whether to apply the snapshot retention period to newly copied manual snapshots instead of automated snapshots.", + "type": "boolean" + }, + "SnapshotCopyRetentionPeriod": { + "description": "The number of days to retain automated snapshots in the destination region after they are copied from the source region. \n\n Default is 7. \n\n Constraints: Must be at least 1 and no more than 35.", + "type": "integer" + }, + "SnapshotIdentifier": { + "description": "The name of the snapshot from which to create the new cluster. This parameter isn't case sensitive.", + "type": "string" + }, + "Tags": { + "description": "The list of tags for the cluster parameter group.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "description": "A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Endpoint/Port", + "/properties/Endpoint/Address" + ], + "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_1/aws-redshift-clusterparametergroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-redshift-clusterparametergroup.json new file mode 100644 index 0000000000..556052dad4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-redshift-clusterparametergroup.json @@ -0,0 +1,158 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ParameterGroupName", + "/properties/ParameterGroupFamily", + "/properties/Description" + ], + "definitions": { + "Parameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "description": "The name of the parameter.", + "type": "string" + }, + "ParameterValue": { + "description": "The value of the parameter. If `ParameterName` is `wlm_json_configuration`, then the maximum size of `ParameterValue` is 8000 characters.", + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterParameterGroup", + "handlers": { + "create": { + "permissions": [ + "redshift:CreateClusterParameterGroup", + "redshift:ModifyClusterParameterGroup", + "redshift:DescribeClusterParameterGroups", + "redshift:DescribeClusterParameters", + "redshift:DescribeTags", + "redshift:CreateTags", + "ec2:AllocateAddress", + "ec2:AssociateAddress", + "ec2:AttachNetworkInterface", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAddresses", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInternetGateways", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs" + ] + }, + "delete": { + "permissions": [ + "redshift:DescribeTags", + "redshift:DescribeClusterParameterGroups", + "redshift:DeleteClusterParameterGroup", + "redshift:DescribeClusterParameters", + "initech:DeleteReport" + ] + }, + "list": { + "permissions": [ + "redshift:DescribeTags", + "redshift:DescribeClusterParameterGroups", + "redshift:DescribeClusterParameters", + "initech:ListReports" + ] + }, + "read": { + "permissions": [ + "redshift:DescribeClusterParameterGroups", + "initech:DescribeReport", + "redshift:DescribeClusterParameters", + "redshift:DescribeTags" + ] + }, + "update": { + "permissions": [ + "redshift:DescribeClusterParameterGroups", + "redshift:ResetClusterParameterGroup", + "redshift:ModifyClusterParameterGroup", + "redshift:DescribeClusterParameters", + "redshift:DescribeTags", + "redshift:CreateTags", + "redshift:DeleteTags", + "initech:UpdateReport" + ] + } + }, + "primaryIdentifier": [ + "/properties/ParameterGroupName" + ], + "properties": { + "Description": { + "description": "A description of the parameter group.", + "type": "string" + }, + "ParameterGroupFamily": { + "description": "The Amazon Redshift engine version to which the cluster parameter group applies. The cluster engine version determines the set of parameters.", + "type": "string" + }, + "ParameterGroupName": { + "description": "The name of the cluster parameter group.", + "maxLength": 255, + "type": "string" + }, + "Parameters": { + "description": "An array of parameters to be modified. A maximum of 20 parameters can be modified in a single request.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Parameter" + }, + "type": "array" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "ParameterGroupFamily" + ], + "tagging": { + "taggable": true + }, + "typeName": "AWS::Redshift::ClusterParameterGroup", + "writeOnlyProperties": [ + "/properties/Tags", + "/properties/Tags/*/Key", + "/properties/Tags/*/Value" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-redshift-endpointaccess.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-redshift-endpointaccess.json new file mode 100644 index 0000000000..42a134e042 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-redshift-endpointaccess.json @@ -0,0 +1,225 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/EndpointName", + "/properties/ClusterIdentifier", + "/properties/ResourceOwner", + "/properties/SubnetGroupName" + ], + "definitions": { + "NetworkInterface": { + "additionalProperties": false, + "description": "Describes a network interface.", + "properties": { + "AvailabilityZone": { + "description": "The Availability Zone.", + "type": "string" + }, + "NetworkInterfaceId": { + "description": "The network interface identifier.", + "type": "string" + }, + "PrivateIpAddress": { + "description": "The IPv4 address of the network interface within the subnet.", + "type": "string" + }, + "SubnetId": { + "description": "The subnet identifier.", + "type": "string" + } + }, + "type": "object" + }, + "VpcSecurityGroup": { + "additionalProperties": false, + "description": "Describes the members of a VPC security group.", + "properties": { + "Status": { + "description": "The status of the VPC security group.", + "type": "string" + }, + "VpcSecurityGroupId": { + "description": "The identifier of the VPC security group.", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource schema for a Redshift-managed VPC endpoint.", + "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": { + "description": "The DNS address of the endpoint.", + "type": "string" + }, + "ClusterIdentifier": { + "description": "A unique identifier for the cluster. You use this identifier to refer to the cluster for any subsequent cluster operations such as deleting or modifying. All alphabetical characters must be lower case, no hypens at the end, no two consecutive hyphens. Cluster name should be unique for all clusters within an AWS account", + "type": "string" + }, + "EndpointCreateTime": { + "description": "The time (UTC) that the endpoint was created.", + "type": "string" + }, + "EndpointName": { + "description": "The name of the endpoint.", + "pattern": "^(?=^[a-z][a-z0-9]*(-[a-z0-9]+)*$).{1,30}$", + "type": "string" + }, + "EndpointStatus": { + "description": "The status of the endpoint.", + "type": "string" + }, + "Port": { + "description": "The port number on which the cluster accepts incoming connections.", + "type": "integer" + }, + "ResourceOwner": { + "description": "The AWS account ID of the owner of the cluster.", + "pattern": "^\\d{12}$", + "type": "string" + }, + "SubnetGroupName": { + "description": "The subnet group name where Amazon Redshift chooses to deploy the endpoint.", + "pattern": "^(?=^[a-zA-Z0-9-]+$).{1,255}$", + "type": "string" + }, + "VpcEndpoint": { + "additionalProperties": false, + "description": "The connection endpoint for connecting to an Amazon Redshift cluster through the proxy.", + "properties": { + "NetworkInterfaces": { + "description": "One or more network interfaces of the endpoint. Also known as an interface endpoint.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/NetworkInterface" + }, + "type": "array" + }, + "VpcEndpointId": { + "description": "The connection endpoint ID for connecting an Amazon Redshift cluster through the proxy.", + "type": "string" + }, + "VpcId": { + "description": "The VPC identifier that the endpoint is associated.", + "type": "string" + } + }, + "type": "object" + }, + "VpcSecurityGroupIds": { + "description": "A list of vpc security group ids to apply to the created endpoint access.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcSecurityGroups": { + "description": "A list of Virtual Private Cloud (VPC) security groups to be associated with the endpoint.", + "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_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-app.json deleted file mode 100644 index da6e3f4330..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-app.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AppName", - "/properties/AppType", - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/Tags", - "/properties/ResourceSpec" - ], - "definitions": { - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "SageMakerImageArn": { - "description": "The ARN of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "minLength": 1, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The ARN of the image version created on the instance.", - "maxLength": 256, - "minLength": 1, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "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" - } - }, - "description": "Resource Type definition for AWS::SageMaker::App", - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:DescribeApp" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteApp" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListApps" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeApp" - ] - } - }, - "primaryIdentifier": [ - "/properties/AppName", - "/properties/AppType", - "/properties/DomainId", - "/properties/UserProfileName" - ], - "properties": { - "AppArn": { - "description": "The Amazon Resource Name (ARN) of the app.", - "maxLength": 256, - "minLength": 1, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", - "type": "string" - }, - "AppName": { - "description": "The name of the app.", - "maxLength": 63, - "minLength": 1, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "AppType": { - "description": "The type of app.", - "enum": [ - "JupyterServer", - "KernelGateway", - "RStudioServerPro", - "RSessionGateway", - "Canvas" - ], - "type": "string" - }, - "DomainId": { - "description": "The domain ID.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "ResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance." - }, - "Tags": { - "description": "A list of tags to apply to the app.", - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileName": { - "description": "The user profile name.", - "maxLength": 63, - "minLength": 1, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AppArn" - ], - "required": [ - "AppName", - "AppType", - "DomainId", - "UserProfileName" - ], - "typeName": "AWS::SageMaker::App", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-domain.json deleted file mode 100644 index 1948e2768f..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-domain.json +++ /dev/null @@ -1,575 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AppNetworkAccessType", - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/SubnetIds", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CustomImage": { - "additionalProperties": false, - "description": "A custom SageMaker image.", - "properties": { - "AppImageConfigName": { - "description": "The Name of the AppImageConfig.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "description": "The name of the CustomImage. Must be unique to your account.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "description": "The version number of the CustomImage.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", - "properties": { - "ExecutionRole": { - "description": "The execution role for the space.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DomainSettings": { - "additionalProperties": false, - "description": "A collection of Domain settings.", - "properties": { - "RStudioServerProDomainSettings": { - "$ref": "#/definitions/RStudioServerProDomainSettings" - }, - "SecurityGroupIds": { - "description": "The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 3, - "minItems": 1, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "description": "The JupyterServer app settings.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "description": "The kernel gateway app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." - } - }, - "type": "object" - }, - "RSessionAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to an RSessionGateway app.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", - "properties": { - "AccessStatus": { - "description": "Indicates whether the current user has access to the RStudioServerPro app.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "RStudioServerProDomainSettings": { - "additionalProperties": false, - "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "DomainExecutionRoleArn": { - "description": "The ARN of the execution role for the RStudioServerPro Domain-level app.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "RStudioConnectUrl": { - "description": "A URL pointing to an RStudio Connect server.", - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - }, - "RStudioPackageManagerUrl": { - "description": "A URL pointing to an RStudio Package Manager server.", - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - } - }, - "required": [ - "DomainExecutionRoleArn" - ], - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "LifecycleConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "SageMakerImageArn": { - "description": "The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The Amazon Resource Name (ARN) of the image version created on the instance.", - "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, - "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", - "properties": { - "NotebookOutputOption": { - "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "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" - }, - "UserSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", - "properties": { - "ExecutionRole": { - "description": "The execution role for the user.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "RSessionAppSettings": { - "$ref": "#/definitions/RSessionAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings", - "description": "The sharing settings." - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SageMaker::Domain", - "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": { - "description": "Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.", - "enum": [ - "PublicInternetOnly", - "VpcOnly" - ], - "type": "string" - }, - "AppSecurityGroupManagement": { - "description": "The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.", - "enum": [ - "Service", - "Customer" - ], - "type": "string" - }, - "AuthMode": { - "description": "The mode of authentication that members use to access the domain.", - "enum": [ - "SSO", - "IAM" - ], - "type": "string" - }, - "DefaultSpaceSettings": { - "$ref": "#/definitions/DefaultSpaceSettings", - "description": "The default space settings." - }, - "DefaultUserSettings": { - "$ref": "#/definitions/UserSettings", - "description": "The default user settings." - }, - "DomainArn": { - "description": "The Amazon Resource Name (ARN) of the created domain.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", - "type": "string" - }, - "DomainId": { - "description": "The domain name.", - "maxLength": 63, - "pattern": "^d-(-*[a-z0-9])+", - "type": "string" - }, - "DomainName": { - "description": "A name for the domain.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "DomainSettings": { - "$ref": "#/definitions/DomainSettings" - }, - "HomeEfsFileSystemId": { - "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.", - "maxLength": 32, - "type": "string" - }, - "KmsKeyId": { - "description": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "SecurityGroupIdForDomainBoundary": { - "description": "The ID of the security group that authorizes traffic between the RSessionGateway apps and the RStudioServerPro app.", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "SingleSignOnManagedApplicationInstanceId": { - "description": "The SSO managed application instance ID.", - "maxLength": 256, - "type": "string" - }, - "SubnetIds": { - "description": "The VPC subnets that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "description": "A list of tags to apply to the user profile.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "Url": { - "description": "The URL to the created domain.", - "maxLength": 1024, - "type": "string" - }, - "VpcId": { - "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/DomainArn", - "/properties/Url", - "/properties/DomainId", - "/properties/HomeEfsFileSystemId", - "/properties/SecurityGroupIdForDomainBoundary", - "/properties/SingleSignOnManagedApplicationInstanceId" - ], - "required": [ - "AuthMode", - "DefaultUserSettings", - "DomainName", - "SubnetIds", - "VpcId" - ], - "typeName": "AWS::SageMaker::Domain", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-model.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-model.json new file mode 100644 index 0000000000..0eff60b77a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-model.json @@ -0,0 +1,230 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ExecutionRoleArn", + "/properties/EnableNetworkIsolation", + "/properties/InferenceExecutionConfig", + "/properties/PrimaryContainer", + "/properties/ModelName", + "/properties/VpcConfig", + "/properties/Containers" + ], + "definitions": { + "ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "type": "object" + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataSource": { + "$ref": "#/definitions/ModelDataSource" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/MultiModelConfig" + } + }, + "type": "object" + }, + "ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "ModelAccessConfig": { + "additionalProperties": false, + "properties": { + "AcceptEula": { + "type": "boolean" + } + }, + "required": [ + "AcceptEula" + ], + "type": "object" + }, + "ModelDataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "S3DataSource": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ModelAccessConfig": { + "$ref": "#/definitions/ModelAccessConfig" + }, + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri", + "S3DataType", + "CompressionType" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Subnets", + "SecurityGroupIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SageMaker::Model", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/ContainerDefinition" + }, + "type": "array", + "uniqueItems": false + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcConfig": { + "$ref": "#/definitions/VpcConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::SageMaker::Model" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-userprofile.json deleted file mode 100644 index 8d20becfab..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-userprofile.json +++ /dev/null @@ -1,368 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/SingleSignOnUserIdentifier", - "/properties/SingleSignOnUserValue", - "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", - "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", - "/properties/Tags" - ], - "definitions": { - "CustomImage": { - "additionalProperties": false, - "description": "A custom SageMaker image.", - "properties": { - "AppImageConfigName": { - "description": "The Name of the AppImageConfig.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "description": "The name of the CustomImage. Must be unique to your account.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "description": "The version number of the CustomImage.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "description": "The JupyterServer app settings.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "description": "The kernel gateway app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", - "properties": { - "AccessStatus": { - "description": "Indicates whether the current user has access to the RStudioServerPro app.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "SageMakerImageArn": { - "description": "The ARN of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The ARN of the image version created on the instance.", - "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, - "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", - "properties": { - "NotebookOutputOption": { - "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "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" - }, - "UserSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", - "properties": { - "ExecutionRole": { - "description": "The user profile Amazon Resource Name (ARN).", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings", - "description": "The sharing settings." - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SageMaker::UserProfile", - "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": { - "description": "The ID of the associated Domain.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "SingleSignOnUserIdentifier": { - "description": "A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is \"UserName\". If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified.", - "pattern": "UserName", - "type": "string" - }, - "SingleSignOnUserValue": { - "description": "The username of the associated AWS Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified.", - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "description": "A list of tags to apply to the user profile.", - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileArn": { - "description": "The user profile Amazon Resource Name (ARN).", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", - "type": "string" - }, - "UserProfileName": { - "description": "A name for the UserProfile.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "UserSettings": { - "$ref": "#/definitions/UserSettings", - "description": "A collection of settings.", - "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_central_1/aws-ses-receiptrule.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ses-receiptrule.json new file mode 100644 index 0000000000..f320143e9e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ses-receiptrule.json @@ -0,0 +1,220 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleSetName" + ], + "definitions": { + "Action": { + "additionalProperties": false, + "properties": { + "AddHeaderAction": { + "$ref": "#/definitions/AddHeaderAction" + }, + "BounceAction": { + "$ref": "#/definitions/BounceAction" + }, + "LambdaAction": { + "$ref": "#/definitions/LambdaAction" + }, + "S3Action": { + "$ref": "#/definitions/S3Action" + }, + "SNSAction": { + "$ref": "#/definitions/SNSAction" + }, + "StopAction": { + "$ref": "#/definitions/StopAction" + }, + "WorkmailAction": { + "$ref": "#/definitions/WorkmailAction" + } + }, + "type": "object" + }, + "AddHeaderAction": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "HeaderValue": { + "type": "string" + } + }, + "required": [ + "HeaderValue", + "HeaderName" + ], + "type": "object" + }, + "BounceAction": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + }, + "Sender": { + "type": "string" + }, + "SmtpReplyCode": { + "type": "string" + }, + "StatusCode": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "Sender", + "SmtpReplyCode", + "Message" + ], + "type": "object" + }, + "LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + }, + "InvocationType": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "Rule": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": false + }, + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Recipients": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ScanEnabled": { + "type": "boolean" + }, + "TlsPolicy": { + "enum": [ + "Require", + "Optional" + ], + "type": "string" + } + }, + "type": "object" + }, + "S3Action": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + }, + "ObjectKeyPrefix": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "SNSAction": { + "additionalProperties": false, + "properties": { + "Encoding": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "type": "object" + }, + "StopAction": { + "additionalProperties": false, + "properties": { + "Scope": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "Scope" + ], + "type": "object" + }, + "WorkmailAction": { + "additionalProperties": false, + "properties": { + "OrganizationArn": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "OrganizationArn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::SES::ReceiptRule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "After": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Rule": { + "$ref": "#/definitions/Rule" + }, + "RuleSetName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Rule", + "RuleSetName" + ], + "typeName": "AWS::SES::ReceiptRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-transfer-agreement.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-transfer-agreement.json new file mode 100644 index 0000000000..5b02300b64 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-transfer-agreement.json @@ -0,0 +1,173 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ServerId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "Creates a key-value pair for a specific resource.", + "properties": { + "Key": { + "description": "The name assigned to the tag that you create.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "Contains one or more values that you assigned to the key name you create.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Transfer::Agreement", + "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": { + "description": "Specifies the access role for the agreement.", + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:.*role/.*", + "type": "string" + }, + "AgreementId": { + "description": "A unique identifier for the agreement.", + "maxLength": 19, + "minLength": 19, + "pattern": "^a-([0-9a-f]{17})$", + "type": "string" + }, + "Arn": { + "description": "Specifies the unique Amazon Resource Name (ARN) for the agreement.", + "maxLength": 1600, + "minLength": 20, + "pattern": "arn:.*", + "type": "string" + }, + "BaseDirectory": { + "description": "Specifies the base directory for the agreement.", + "maxLength": 1024, + "pattern": "^(|/.*)$", + "type": "string" + }, + "Description": { + "description": "A textual description for the agreement.", + "maxLength": 200, + "minLength": 1, + "pattern": "^[\\u0021-\\u007E]+$", + "type": "string" + }, + "LocalProfileId": { + "description": "A unique identifier for the local profile.", + "maxLength": 19, + "minLength": 19, + "pattern": "^p-([0-9a-f]{17})$", + "type": "string" + }, + "PartnerProfileId": { + "description": "A unique identifier for the partner profile.", + "maxLength": 19, + "minLength": 19, + "pattern": "^p-([0-9a-f]{17})$", + "type": "string" + }, + "ServerId": { + "description": "A unique identifier for the server.", + "maxLength": 19, + "minLength": 19, + "pattern": "^s-([0-9a-f]{17})$", + "type": "string" + }, + "Status": { + "description": "Specifies the status of the agreement.", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "description": "Key-value pairs that can be used to group and search for agreements. Tags are metadata attached to agreements for any purpose.", + "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_1/aws-transfer-certificate.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-transfer-certificate.json new file mode 100644 index 0000000000..81379aba57 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-transfer-certificate.json @@ -0,0 +1,193 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Certificate", + "/properties/CertificateChain", + "/properties/PrivateKey" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Transfer::Certificate", + "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": { + "description": "Specifies the active date for the certificate.", + "type": "string" + }, + "Arn": { + "description": "Specifies the unique Amazon Resource Name (ARN) for the agreement.", + "maxLength": 1600, + "minLength": 20, + "pattern": "arn:.*", + "type": "string" + }, + "Certificate": { + "description": "Specifies the certificate body to be imported.", + "maxLength": 16384, + "minLength": 1, + "pattern": "^[\\t\\n\\r\\u0020-\\u00FF]+$", + "type": "string" + }, + "CertificateChain": { + "description": "Specifies the certificate chain to be imported.", + "maxLength": 2097152, + "minLength": 1, + "pattern": "^[\\t\\n\\r\\u0020-\\u00FF]+$", + "type": "string" + }, + "CertificateId": { + "description": "A unique identifier for the certificate.", + "maxLength": 22, + "minLength": 22, + "pattern": "^cert-([0-9a-f]{17})$", + "type": "string" + }, + "Description": { + "description": "A textual description for the certificate.", + "maxLength": 200, + "minLength": 1, + "pattern": "^[\\u0021-\\u007E]+$", + "type": "string" + }, + "InactiveDate": { + "description": "Specifies the inactive date for the certificate.", + "type": "string" + }, + "NotAfterDate": { + "description": "Specifies the not after date for the certificate.", + "type": "string" + }, + "NotBeforeDate": { + "description": "Specifies the not before date for the certificate.", + "type": "string" + }, + "PrivateKey": { + "description": "Specifies the private key for the certificate.", + "maxLength": 16384, + "minLength": 1, + "pattern": "^[\\t\\n\\r\\u0020-\\u00FF]+$", + "type": "string" + }, + "Serial": { + "description": "Specifies Certificate's serial.", + "maxLength": 48, + "minLength": 0, + "pattern": "^[0-9a-fA-F{}:?]*$", + "type": "string" + }, + "Status": { + "description": "A status description for the certificate.", + "enum": [ + "ACTIVE", + "PENDING", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "description": "Key-value pairs that can be used to group and search for certificates. Tags are metadata attached to certificates for any purpose.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "Type": { + "description": "Describing the type of certificate. With or without a private key.", + "enum": [ + "CERTIFICATE", + "CERTIFICATE_WITH_PRIVATE_KEY" + ], + "type": "string" + }, + "Usage": { + "description": "Specifies the usage type for the certificate.", + "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_1/aws-transfer-connector.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-transfer-connector.json new file mode 100644 index 0000000000..63a1ac63b0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-transfer-connector.json @@ -0,0 +1,237 @@ +{ + "additionalProperties": false, + "definitions": { + "SftpConnectorTrustedHostKey": { + "description": "The public host key for the external server to which you are connecting.", + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "Creates a key-value pair for a specific resource.", + "properties": { + "Key": { + "description": "The name assigned to the tag that you create.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "Contains one or more values that you assigned to the key name you create.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Transfer::Connector", + "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": { + "description": "Specifies the access role for the connector.", + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:.*role/.*", + "type": "string" + }, + "Arn": { + "description": "Specifies the unique Amazon Resource Name (ARN) for the connector.", + "maxLength": 1600, + "minLength": 20, + "pattern": "arn:.*", + "type": "string" + }, + "As2Config": { + "additionalProperties": false, + "description": "Configuration for an AS2 connector.", + "properties": { + "BasicAuthSecretId": { + "description": "ARN or name of the secret in AWS Secrets Manager which contains the credentials for Basic authentication. If empty, Basic authentication is disabled for the AS2 connector", + "maxLength": 2048, + "minLength": 0, + "type": "string" + }, + "Compression": { + "description": "Compression setting for this AS2 connector configuration.", + "enum": [ + "ZLIB", + "DISABLED" + ], + "type": "string" + }, + "EncryptionAlgorithm": { + "description": "Encryption algorithm for this AS2 connector configuration.", + "enum": [ + "AES128_CBC", + "AES192_CBC", + "AES256_CBC", + "NONE" + ], + "type": "string" + }, + "LocalProfileId": { + "description": "A unique identifier for the local profile.", + "maxLength": 19, + "minLength": 19, + "pattern": "^p-([0-9a-f]{17})$", + "type": "string" + }, + "MdnResponse": { + "description": "MDN Response setting for this AS2 connector configuration.", + "enum": [ + "SYNC", + "NONE" + ], + "type": "string" + }, + "MdnSigningAlgorithm": { + "description": "MDN Signing algorithm for this AS2 connector configuration.", + "enum": [ + "SHA256", + "SHA384", + "SHA512", + "SHA1", + "NONE", + "DEFAULT" + ], + "type": "string" + }, + "MessageSubject": { + "description": "The message subject for this AS2 connector configuration.", + "maxLength": 1024, + "minLength": 1, + "pattern": "^[\\u0020-\\u007E\\t]+$", + "type": "string" + }, + "PartnerProfileId": { + "description": "A unique identifier for the partner profile.", + "maxLength": 19, + "minLength": 19, + "pattern": "^p-([0-9a-f]{17})$", + "type": "string" + }, + "SigningAlgorithm": { + "description": "Signing algorithm for this AS2 connector configuration.", + "enum": [ + "SHA256", + "SHA384", + "SHA512", + "SHA1", + "NONE" + ], + "type": "string" + } + }, + "type": "object" + }, + "ConnectorId": { + "description": "A unique identifier for the connector.", + "maxLength": 19, + "minLength": 19, + "pattern": "^c-([0-9a-f]{17})$", + "type": "string" + }, + "LoggingRole": { + "description": "Specifies the logging role for the connector.", + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:.*role/.*", + "type": "string" + }, + "SftpConfig": { + "additionalProperties": false, + "description": "Configuration for an SFTP connector.", + "properties": { + "TrustedHostKeys": { + "description": "List of public host keys, for the external server to which you are connecting.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SftpConnectorTrustedHostKey" + }, + "maxItems": 10, + "type": "array", + "uniqueItems": false + }, + "UserSecretId": { + "description": "ARN or name of the secret in AWS Secrets Manager which contains the SFTP user's private keys or passwords.", + "maxLength": 2048, + "minLength": 1, + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "description": "Key-value pairs that can be used to group and search for connectors. Tags are metadata attached to connectors for any purpose.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "Url": { + "description": "URL for Connector", + "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_1/aws-transfer-profile.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-transfer-profile.json new file mode 100644 index 0000000000..4615b17586 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-transfer-profile.json @@ -0,0 +1,137 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ProfileType" + ], + "definitions": { + "CertificateId": { + "description": "A unique identifier for the certificate.", + "maxLength": 22, + "minLength": 22, + "pattern": "^cert-([0-9a-f]{17})$", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "Creates a key-value pair for a specific resource.", + "properties": { + "Key": { + "description": "The name assigned to the tag that you create.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "Contains one or more values that you assigned to the key name you create.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Transfer::Profile", + "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": { + "description": "Specifies the unique Amazon Resource Name (ARN) for the profile.", + "maxLength": 1600, + "minLength": 20, + "pattern": "arn:.*", + "type": "string" + }, + "As2Id": { + "description": "AS2 identifier agreed with a trading partner.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\u0020-\\u007E\\s]*$", + "type": "string" + }, + "CertificateIds": { + "description": "List of the certificate IDs associated with this profile to be used for encryption and signing of AS2 messages.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CertificateId" + }, + "type": "array" + }, + "ProfileId": { + "description": "A unique identifier for the profile", + "maxLength": 19, + "minLength": 19, + "pattern": "^p-([0-9a-f]{17})$", + "type": "string" + }, + "ProfileType": { + "description": "Enum specifying whether the profile is local or associated with a trading partner.", + "enum": [ + "LOCAL", + "PARTNER" + ], + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "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/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py new file mode 100644 index 0000000000..079a62fc4f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py @@ -0,0 +1,921 @@ +from typing import List + +# pylint: disable=too-many-lines +types = [ + "AWS::CDK::Metadata", + "AWS::CE::AnomalySubscription", + "AWS::Shield::DRTAccess", + "AWS::SSO::Assignment", + "AWS::Glue::Partition", + "AWS::EC2::TransitGatewayRouteTablePropagation", + "AWS::Shield::ProactiveEngagement", + "AWS::ApiGateway::BasePathMapping", + "AWS::S3::AccessGrantsLocation", + "AWS::GuardDuty::Filter", + "AWS::ECS::Service", + "AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "AWS::DMS::ReplicationConfig", + "AWS::DynamoDB::Table", + "AWS::AmazonMQ::ConfigurationAssociation", + "AWS::EC2::SecurityGroupEgress", + "AWS::Glue::DataQualityRuleset", + "AWS::Config::ConfigurationRecorder", + "AWS::EC2::NetworkPerformanceMetricSubscription", + "AWS::CloudFront::ContinuousDeploymentPolicy", + "AWS::ECR::ReplicationConfiguration", + "AWS::AppConfig::ExtensionAssociation", + "AWS::EC2::IPAMPoolCidr", + "AWS::Redshift::ClusterSubnetGroup", + "AWS::RDS::DBInstance", + "AWS::EC2::VPCDHCPOptionsAssociation", + "AWS::ApiGateway::Model", + "AWS::EC2::NetworkAcl", + "AWS::Lambda::EventSourceMapping", + "AWS::Logs::ResourcePolicy", + "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::EC2::NetworkAclEntry", + "AWS::Transfer::Certificate", + "AWS::ApiGateway::DocumentationPart", + "AWS::CloudWatch::CompositeAlarm", + "AWS::Route53Resolver::FirewallDomainList", + "AWS::AppConfig::Application", + "AWS::OpsWorks::Stack", + "AWS::GameLift::Fleet", + "AWS::DataSync::LocationFSxWindows", + "AWS::GameLift::Build", + "AWS::ApiGateway::RequestValidator", + "AWS::AutoScaling::WarmPool", + "AWS::ApplicationAutoScaling::ScalableTarget", + "AWS::Config::StoredQuery", + "AWS::ACMPCA::Permission", + "AWS::Transfer::Server", + "AWS::ApiGateway::DomainName", + "AWS::ECS::PrimaryTaskSet", + "AWS::FMS::ResourceSet", + "AWS::AutoScaling::AutoScalingGroup", + "AWS::WAFv2::RegexPatternSet", + "AWS::EKS::FargateProfile", + "AWS::Route53::DNSSEC", + "AWS::EC2::TransitGatewayRouteTable", + "AWS::ControlTower::EnabledControl", + "AWS::S3::AccessGrantsInstance", + "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", + "AWS::ElastiCache::SecurityGroup", + "AWS::OpsWorks::Layer", + "AWS::KinesisFirehose::DeliveryStream", + "AWS::PCAConnectorAD::DirectoryRegistration", + "AWS::ImageBuilder::Component", + "AWS::Glue::Connection", + "AWS::IAM::Group", + "AWS::Organizations::ResourcePolicy", + "AWS::EC2::TransitGatewayMulticastGroupSource", + "AWS::Transfer::Profile", + "AWS::GameLift::Alias", + "AWS::AppSync::DomainName", + "AWS::ApiGateway::UsagePlanKey", + "AWS::FMS::Policy", + "AWS::CloudFront::RealtimeLogConfig", + "AWS::LakeFormation::DataCellsFilter", + "AWS::DataSync::LocationHDFS", + "AWS::Events::Archive", + "AWS::MSK::Cluster", + "AWS::EC2::VPCEndpointConnectionNotification", + "AWS::CodePipeline::Pipeline", + "AWS::OpsWorks::Instance", + "AWS::Config::ConfigurationAggregator", + "AWS::ImageBuilder::ImagePipeline", + "AWS::ElasticLoadBalancingV2::ListenerCertificate", + "AWS::Route53Resolver::ResolverRuleAssociation", + "AWS::Synthetics::Canary", + "AWS::Backup::RestoreTestingSelection", + "AWS::SNS::Subscription", + "AWS::EC2::NatGateway", + "AWS::InternetMonitor::Monitor", + "AWS::Transfer::Workflow", + "AWS::S3::AccessGrant", + "AWS::Glue::DevEndpoint", + "AWS::EventSchemas::Discoverer", + "AWS::ElastiCache::UserGroup", + "AWS::ImageBuilder::ImageRecipe", + "AWS::ApiGateway::RestApi", + "AWS::OpsWorks::ElasticLoadBalancerAttachment", + "AWS::S3ObjectLambda::AccessPointPolicy", + "AWS::ElastiCache::ReplicationGroup", + "AWS::StepFunctions::StateMachineAlias", + "AWS::RDS::GlobalCluster", + "AWS::SSO::PermissionSet", + "AWS::Glue::Job", + "AWS::ServiceCatalog::CloudFormationProvisionedProduct", + "AWS::Route53::HostedZone", + "AWS::EKS::PodIdentityAssociation", + "AWS::Glue::Table", + "AWS::Logs::MetricFilter", + "AWS::Lambda::Function", + "AWS::SNS::Topic", + "AWS::Backup::BackupSelection", + "AWS::DataSync::LocationFSxLustre", + "AWS::EC2::VPCGatewayAttachment", + "AWS::CloudTrail::Trail", + "AWS::EC2::VPNConnectionRoute", + "AWS::EC2::InternetGateway", + "AWS::EC2::GatewayRouteTableAssociation", + "AWS::WAFv2::IPSet", + "AWS::SSM::Document", + "AWS::IAM::Role", + "AWS::Events::ApiDestination", + "AWS::ElastiCache::ServerlessCache", + "AWS::CloudFront::CloudFrontOriginAccessIdentity", + "AWS::ApiGateway::ApiKey", + "AWS::AutoScaling::LaunchConfiguration", + "AWS::ApiGateway::ClientCertificate", + "AWS::KinesisAnalyticsV2::Application", + "AWS::Lambda::Alias", + "AWS::Logs::LogAnomalyDetector", + "AWS::WAF::IPSet", + "AWS::EC2::TransitGatewayMulticastDomainAssociation", + "AWS::WAF::SizeConstraintSet", + "AWS::EC2::TransitGatewayRouteTableAssociation", + "AWS::ImageBuilder::Image", + "AWS::ElastiCache::SecurityGroupIngress", + "AWS::CloudWatch::Dashboard", + "AWS::CloudWatch::Alarm", + "AWS::GuardDuty::Member", + "AWS::CloudFormation::CustomResource", + "AWS::WAFv2::RuleGroup", + "AWS::ElastiCache::ParameterGroup", + "AWS::NetworkFirewall::LoggingConfiguration", + "AWS::Glue::Classifier", + "AWS::CodeDeploy::DeploymentGroup", + "AWS::CloudFormation::StackSet", + "AWS::EC2::Route", + "AWS::CloudFormation::HookVersion", + "AWS::XRay::ResourcePolicy", + "AWS::ServiceCatalog::LaunchTemplateConstraint", + "AWS::WAFv2::LoggingConfiguration", + "AWS::DynamoDB::GlobalTable", + "AWS::Backup::BackupPlan", + "AWS::ImageBuilder::DistributionConfiguration", + "AWS::LakeFormation::Permissions", + "AWS::Glue::DataCatalogEncryptionSettings", + "AWS::CloudFront::PublicKey", + "AWS::PCAConnectorAD::Connector", + "AWS::IdentityStore::Group", + "AWS::RAM::Permission", + "AWS::DataSync::Task", + "AWS::ECS::TaskDefinition", + "AWS::Shield::Protection", + "AWS::IdentityStore::GroupMembership", + "AWS::AppSync::FunctionConfiguration", + "AWS::EC2::SpotFleet", + "AWS::IoT::PolicyPrincipalAttachment", + "AWS::FMS::NotificationChannel", + "AWS::MSK::BatchScramSecret", + "AWS::S3::Bucket", + "AWS::GuardDuty::IPSet", + "AWS::EMR::SecurityConfiguration", + "AWS::CloudWatch::InsightRule", + "AWS::ApiGateway::UsagePlan", + "AWS::Batch::SchedulingPolicy", + "AWS::ServiceCatalog::PortfolioProductAssociation", + "AWS::Athena::WorkGroup", + "AWS::ServiceCatalog::PortfolioShare", + "AWS::ApiGateway::VpcLink", + "AWS::IAM::ServerCertificate", + "AWS::Events::EventBus", + "AWS::SQS::QueueInlinePolicy", + "AWS::Organizations::Organization", + "AWS::SSM::MaintenanceWindowTarget", + "AWS::ApiGateway::Authorizer", + "AWS::IAM::Policy", + "AWS::RDS::DBSecurityGroupIngress", + "AWS::EC2::TransitGatewayMulticastGroupMember", + "AWS::EC2::VolumeAttachment", + "AWS::Glue::SecurityConfiguration", + "AWS::ApplicationInsights::Application", + "AWS::ECS::ClusterCapacityProviderAssociations", + "AWS::AppConfig::ConfigurationProfile", + "AWS::Route53Resolver::FirewallRuleGroup", + "AWS::MSK::Configuration", + "AWS::EC2::TransitGateway", + "AWS::EC2::VPCEndpointServicePermissions", + "AWS::SSM::MaintenanceWindowTask", + "AWS::EC2::TransitGatewayMulticastDomain", + "AWS::VerifiedPermissions::PolicyTemplate", + "AWS::EKS::Cluster", + "AWS::EFS::FileSystem", + "AWS::Logs::QueryDefinition", + "AWS::IAM::InstanceProfile", + "AWS::DataSync::LocationNFS", + "AWS::CertificateManager::Certificate", + "AWS::SDB::Domain", + "AWS::EC2::SubnetRouteTableAssociation", + "AWS::ServiceCatalog::ServiceActionAssociation", + "AWS::ImageBuilder::ContainerRecipe", + "AWS::EFS::AccessPoint", + "AWS::Redshift::ClusterSecurityGroupIngress", + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation", + "AWS::ElasticLoadBalancingV2::LoadBalancer", + "AWS::OpenSearchService::Domain", + "AWS::Elasticsearch::Domain", + "AWS::ServiceCatalog::StackSetConstraint", + "AWS::EC2::NetworkInterfacePermission", + "AWS::ServiceCatalog::TagOption", + "AWS::ServiceCatalog::LaunchRoleConstraint", + "AWS::SecretsManager::ResourcePolicy", + "AWS::CloudFormation::HookDefaultVersion", + "AWS::Config::ConfigRule", + "AWS::ImageBuilder::Workflow", + "AWS::ECS::TaskSet", + "AWS::AppSync::ApiKey", + "AWS::ACMPCA::CertificateAuthorityActivation", + "AWS::GuardDuty::ThreatIntelSet", + "AWS::EC2::VPC", + "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", + "AWS::MSK::VpcConnection", + "AWS::DataSync::LocationAzureBlob", + "AWS::Logs::LogStream", + "AWS::Route53::RecordSetGroup", + "AWS::OpsWorks::App", + "AWS::Kinesis::Stream", + "AWS::Batch::JobDefinition", + "AWS::IAM::SAMLProvider", + "AWS::CloudFront::KeyGroup", + "AWS::EC2::NetworkInterfaceAttachment", + "AWS::EC2::TransitGatewayAttachment", + "AWS::CodeDeploy::DeploymentConfig", + "AWS::StepFunctions::StateMachineVersion", + "AWS::ServiceCatalogAppRegistry::Application", + "AWS::Glue::Database", + "AWS::Backup::BackupVault", + "AWS::EC2::CustomerGateway", + "AWS::IAM::GroupPolicy", + "AWS::Scheduler::Schedule", + "AWS::WAF::ByteMatchSet", + "AWS::EC2::Host", + "AWS::EC2::RouteTable", + "AWS::DataSync::LocationSMB", + "AWS::SecurityHub::Standard", + "AWS::SNS::TopicInlinePolicy", + "AWS::Redshift::ClusterParameterGroup", + "AWS::Organizations::Policy", + "AWS::Glue::Trigger", + "AWS::GlobalAccelerator::Listener", + "AWS::VerifiedPermissions::PolicyStore", + "AWS::EC2::VPCPeeringConnection", + "AWS::SNS::TopicPolicy", + "AWS::NetworkFirewall::RuleGroup", + "AWS::KMS::Key", + "AWS::ServiceCatalog::AcceptedPortfolioShare", + "AWS::Route53Resolver::FirewallRuleGroupAssociation", + "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", + "AWS::EC2::Subnet", + "AWS::S3ObjectLambda::AccessPoint", + "AWS::WAF::Rule", + "AWS::ElasticBeanstalk::ConfigurationTemplate", + "AWS::SQS::QueuePolicy", + "AWS::AppSync::DomainNameApiAssociation", + "AWS::AppSync::ApiCache", + "AWS::ApiGateway::Account", + "AWS::WAFv2::WebACL", + "AWS::GlobalAccelerator::EndpointGroup", + "AWS::EC2::TransitGatewayConnect", + "AWS::EC2::SecurityGroup", + "AWS::OpsWorks::Volume", + "AWS::IAM::UserToGroupAddition", + "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", + "AWS::EC2::VPNGatewayRoutePropagation", + "AWS::Glue::Crawler", + "AWS::CloudFront::Function", + "AWS::ApiGateway::Method", + "AWS::SSM::PatchBaseline", + "AWS::CloudFront::MonitoringSubscription", + "AWS::EFS::MountTarget", + "AWS::EC2::VPNConnection", + "AWS::WAF::WebACL", + "AWS::Shield::ProtectionGroup", + "AWS::IAM::User", + "AWS::EMR::InstanceGroupConfig", + "AWS::StepFunctions::Activity", + "AWS::Logs::AccountPolicy", + "AWS::S3::BucketPolicy", + "AWS::AppSync::GraphQLSchema", + "AWS::Redshift::Cluster", + "AWS::EMR::InstanceFleetConfig", + "AWS::EMR::Cluster", + "AWS::CodePipeline::Webhook", + "AWS::RDS::DBCluster", + "AWS::ServiceCatalog::ResourceUpdateConstraint", + "AWS::Transfer::Agreement", + "AWS::Chatbot::SlackChannelConfiguration", + "AWS::CloudFront::Distribution", + "AWS::ElastiCache::SubnetGroup", + "AWS::XRay::Group", + "AWS::Oam::Link", + "AWS::ElasticLoadBalancingV2::TrustStoreRevocation", + "AWS::NetworkFirewall::Firewall", + "AWS::EventSchemas::Schema", + "AWS::KMS::ReplicaKey", + "AWS::Redshift::ClusterSecurityGroup", + "AWS::ECR::PullThroughCacheRule", + "AWS::Glue::MLTransform", + "AWS::DataSync::LocationEFS", + "AWS::ApiGateway::Resource", + "AWS::ElasticLoadBalancingV2::TargetGroup", + "AWS::ApplicationAutoScaling::ScalingPolicy", + "AWS::Pipes::Pipe", + "AWS::CloudFormation::Macro", + "AWS::Lambda::LayerVersionPermission", + "AWS::SecretsManager::Secret", + "AWS::ElastiCache::User", + "AWS::Logs::SubscriptionFilter", + "AWS::CodeDeploy::Application", + "AWS::IoT::TopicRule", + "AWS::LakeFormation::PrincipalPermissions", + "AWS::DataSync::LocationS3", + "AWS::AutoScaling::LifecycleHook", + "AWS::FSx::DataRepositoryAssociation", + "AWS::EC2::NetworkInterface", + "AWS::AppSync::Resolver", + "AWS::ControlTower::LandingZone", + "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation", + "AWS::ImageBuilder::LifecyclePolicy", + "AWS::Lambda::EventInvokeConfig", + "AWS::Lambda::LayerVersion", + "AWS::RDS::OptionGroup", + "AWS::OpsWorks::UserProfile", + "AWS::ServiceCatalog::Portfolio", + "AWS::IoT::Policy", + "AWS::EC2::TransitGatewayRoute", + "AWS::SSM::MaintenanceWindow", + "AWS::LakeFormation::TagAssociation", + "AWS::EC2::IPAMResourceDiscovery", + "AWS::ImageBuilder::InfrastructureConfiguration", + "AWS::CloudFormation::WaitCondition", + "AWS::Route53Resolver::ResolverEndpoint", + "AWS::SSO::InstanceAccessControlAttributeConfiguration", + "AWS::EC2::SubnetNetworkAclAssociation", + "AWS::ServiceCatalog::ServiceAction", + "AWS::IAM::UserPolicy", + "AWS::CloudFront::OriginAccessControl", + "AWS::SecretsManager::RotationSchedule", + "AWS::Lambda::Permission", + "AWS::NetworkFirewall::FirewallPolicy", + "AWS::EKS::IdentityProviderConfig", + "AWS::EC2::IPAMResourceDiscoveryAssociation", + "AWS::ServiceCatalogAppRegistry::AttributeGroup", + "AWS::AppSync::GraphQLApi", + "AWS::EC2::EgressOnlyInternetGateway", + "AWS::EC2::VPCCidrBlock", + "AWS::ACMPCA::CertificateAuthority", + "AWS::Athena::PreparedStatement", + "AWS::AutoScaling::ScheduledAction", + "AWS::LakeFormation::Resource", + "AWS::EC2::IPAMScope", + "AWS::DirectoryService::SimpleAD", + "AWS::EC2::VPCEndpoint", + "AWS::RDS::EventSubscription", + "AWS::Config::AggregationAuthorization", + "AWS::DataSync::Agent", + "AWS::Logs::LogGroup", + "AWS::ECS::Cluster", + "AWS::PCAConnectorAD::Template", + "AWS::EC2::PlacementGroup", + "AWS::Organizations::Account", + "AWS::ECR::Repository", + "AWS::AppConfig::Extension", + "AWS::ElasticLoadBalancingV2::ListenerRule", + "AWS::ElasticLoadBalancingV2::TrustStore", + "AWS::EC2::KeyPair", + "AWS::EC2::EIPAssociation", + "AWS::ElasticBeanstalk::Application", + "AWS::IoT::ThingPrincipalAttachment", + "AWS::EC2::CapacityReservation", + "AWS::ElasticLoadBalancing::LoadBalancer", + "AWS::Transfer::User", + "AWS::IAM::RolePolicy", + "AWS::StepFunctions::StateMachine", + "AWS::RDS::DBClusterParameterGroup", + "AWS::WAF::XssMatchSet", + "AWS::Scheduler::ScheduleGroup", + "AWS::EventSchemas::RegistryPolicy", + "AWS::Route53::KeySigningKey", + "AWS::EventSchemas::Registry", + "AWS::Events::Connection", + "AWS::Athena::DataCatalog", + "AWS::Glue::Workflow", + "AWS::EC2::PrefixList", + "AWS::EC2::Instance", + "AWS::EC2::SubnetCidrBlock", + "AWS::ElasticBeanstalk::ApplicationVersion", + "AWS::WAF::SqlInjectionMatchSet", + "AWS::EC2::TransitGatewayVpcAttachment", + "AWS::EC2::FlowLog", + "AWS::AmazonMQ::Broker", + "AWS::EMR::Step", + "AWS::SSM::Association", + "AWS::CloudFront::ResponseHeadersPolicy", + "AWS::SecurityHub::AutomationRule", + "AWS::MSK::ClusterPolicy", + "AWS::GuardDuty::Master", + "AWS::KMS::Alias", + "AWS::XRay::SamplingRule", + "AWS::Route53Resolver::ResolverRule", + "AWS::Transfer::Connector", + "AWS::ApiGateway::DocumentationVersion", + "AWS::WAFv2::WebACLAssociation", + "AWS::Oam::Sink", + "AWS::ApiGateway::GatewayResponse", + "AWS::ACMPCA::Certificate", + "AWS::EC2::IPAMAllocation", + "AWS::WorkSpaces::Workspace", + "AWS::EC2::InstanceConnectEndpoint", + "AWS::DirectoryService::MicrosoftAD", + "AWS::AppSync::SourceApiAssociation", + "AWS::DataSync::LocationObjectStorage", + "AWS::ECS::CapacityProvider", + "AWS::ElastiCache::CacheCluster", + "AWS::SageMaker::ModelCard", + "AWS::Logs::Destination", + "AWS::EKS::Nodegroup", + "AWS::Organizations::OrganizationalUnit", + "AWS::AppSync::DataSource", + "AWS::SQS::Queue", + "AWS::EC2::SecurityGroupIngress", + "AWS::GuardDuty::Detector", + "AWS::ApiGateway::Stage", + "AWS::Batch::ComputeEnvironment", + "AWS::DataPipeline::Pipeline", + "AWS::IoT::Thing", + "AWS::Route53::HealthCheck", + "AWS::Athena::NamedQuery", + "AWS::ApiGateway::Deployment", + "AWS::LakeFormation::DataLakeSettings", + "AWS::AutoScaling::ScalingPolicy", + "AWS::ECR::RegistryPolicy", + "AWS::RDS::DBSecurityGroup", + "AWS::CloudWatch::MetricStream", + "AWS::SSM::Parameter", + "AWS::Config::DeliveryChannel", + "AWS::IAM::OIDCProvider", + "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", + "AWS::ServiceCatalogAppRegistry::ResourceAssociation", + "AWS::EC2::VPNGateway", + "AWS::CloudFormation::Stack", + "AWS::ResourceGroups::Group", + "AWS::CloudFormation::ResourceDefaultVersion", + "AWS::Backup::RestoreTestingPlan", + "AWS::ServiceCatalog::TagOptionAssociation", + "AWS::EC2::IPAM", + "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", + "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::CloudFront::CachePolicy", + "AWS::IAM::AccessKey", + "AWS::RDS::DBSubnetGroup", + "AWS::SecretsManager::SecretTargetAttachment", + "AWS::AmazonMQ::Configuration", + "AWS::CodePipeline::CustomActionType", + "AWS::AccessAnalyzer::Analyzer", + "AWS::EC2::EC2Fleet", + "AWS::ServiceCatalog::CloudFormationProduct", + "AWS::EC2::VPCEndpointService", + "AWS::IAM::ManagedPolicy", + "AWS::EC2::LaunchTemplate", + "AWS::CloudFront::OriginRequestPolicy", + "AWS::DataSync::LocationFSxONTAP", + "AWS::PCAConnectorAD::ServicePrincipalName", + "AWS::ElasticBeanstalk::Environment", + "AWS::Lambda::Version", + "AWS::EC2::DHCPOptions", + "AWS::EC2::IPAMPool", + "AWS::Kinesis::StreamConsumer", + "AWS::IAM::ServiceLinkedRole", + "AWS::CloudFormation::HookTypeConfig", + "AWS::EC2::Volume", + "AWS::IoT::Certificate", + "AWS::EC2::EIP", + "AWS::VerifiedPermissions::Policy", + "AWS::CloudFormation::ResourceVersion", + "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", + "AWS::RDS::DBParameterGroup", + "AWS::SecurityHub::Hub", + "AWS::S3::AccessPoint", + "AWS::Batch::JobQueue", + "AWS::ElasticLoadBalancingV2::Listener", + "AWS::CloudFormation::WaitConditionHandle", + "AWS::GlobalAccelerator::Accelerator", + "AWS::EKS::Addon", +] + +# pylint: disable=too-many-lines +cached: List[str] = [ + "aws-ce-anomalysubscription.json", + "aws-shield-drtaccess.json", + "aws-sso-assignment.json", + "aws-glue-partition.json", + "aws-ec2-transitgatewayroutetablepropagation.json", + "aws-shield-proactiveengagement.json", + "aws-s3-accessgrantslocation.json", + "aws-guardduty-filter.json", + "aws-ecs-service.json", + "aws-dms-replicationconfig.json", + "aws-dynamodb-table.json", + "aws-ec2-securitygroupegress.json", + "aws-glue-dataqualityruleset.json", + "aws-config-configurationrecorder.json", + "aws-ec2-networkperformancemetricsubscription.json", + "aws-cloudfront-continuousdeploymentpolicy.json", + "aws-ecr-replicationconfiguration.json", + "aws-appconfig-extensionassociation.json", + "aws-ec2-ipampoolcidr.json", + "aws-ec2-vpcdhcpoptionsassociation.json", + "aws-ec2-networkacl.json", + "aws-lambda-eventsourcemapping.json", + "aws-logs-resourcepolicy.json", + "aws-servicecatalog-launchnotificationconstraint.json", + "aws-ec2-networkaclentry.json", + "aws-transfer-certificate.json", + "aws-cloudwatch-compositealarm.json", + "aws-route53resolver-firewalldomainlist.json", + "aws-appconfig-application.json", + "aws-datasync-locationfsxwindows.json", + "aws-autoscaling-warmpool.json", + "aws-applicationautoscaling-scalabletarget.json", + "aws-config-storedquery.json", + "aws-acmpca-permission.json", + "aws-transfer-server.json", + "aws-ecs-primarytaskset.json", + "aws-fms-resourceset.json", + "aws-autoscaling-autoscalinggroup.json", + "aws-wafv2-regexpatternset.json", + "aws-eks-fargateprofile.json", + "aws-route53-dnssec.json", + "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", + "aws-s3-accessgrantsinstance.json", + "aws-route53-recordset.json", + "aws-eks-accessentry.json", + "aws-elasticache-securitygroup.json", + "aws-kinesisfirehose-deliverystream.json", + "aws-pcaconnectorad-directoryregistration.json", + "aws-imagebuilder-component.json", + "aws-glue-connection.json", + "aws-iam-group.json", + "aws-organizations-resourcepolicy.json", + "aws-ec2-transitgatewaymulticastgroupsource.json", + "aws-transfer-profile.json", + "aws-appsync-domainname.json", + "aws-fms-policy.json", + "aws-cloudfront-realtimelogconfig.json", + "aws-lakeformation-datacellsfilter.json", + "aws-datasync-locationhdfs.json", + "aws-events-archive.json", + "aws-msk-cluster.json", + "aws-ec2-vpcendpointconnectionnotification.json", + "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", + "aws-elasticloadbalancingv2-listenercertificate.json", + "aws-synthetics-canary.json", + "aws-backup-restoretestingselection.json", + "aws-sns-subscription.json", + "aws-ec2-natgateway.json", + "aws-internetmonitor-monitor.json", + "aws-transfer-workflow.json", + "aws-s3-accessgrant.json", + "aws-glue-devendpoint.json", + "aws-eventschemas-discoverer.json", + "aws-elasticache-usergroup.json", + "aws-imagebuilder-imagerecipe.json", + "aws-opsworks-elasticloadbalancerattachment.json", + "aws-s3objectlambda-accesspointpolicy.json", + "aws-elasticache-replicationgroup.json", + "aws-stepfunctions-statemachinealias.json", + "aws-rds-globalcluster.json", + "aws-sso-permissionset.json", + "aws-glue-job.json", + "aws-servicecatalog-cloudformationprovisionedproduct.json", + "aws-eks-podidentityassociation.json", + "aws-glue-table.json", + "aws-logs-metricfilter.json", + "aws-lambda-function.json", + "aws-sns-topic.json", + "aws-backup-backupselection.json", + "aws-datasync-locationfsxlustre.json", + "aws-ec2-vpcgatewayattachment.json", + "aws-cloudtrail-trail.json", + "aws-ec2-internetgateway.json", + "aws-ec2-gatewayroutetableassociation.json", + "aws-wafv2-ipset.json", + "aws-ssm-document.json", + "aws-iam-role.json", + "aws-events-apidestination.json", + "aws-elasticache-serverlesscache.json", + "aws-cloudfront-cloudfrontoriginaccessidentity.json", + "aws-autoscaling-launchconfiguration.json", + "aws-kinesisanalyticsv2-application.json", + "aws-logs-loganomalydetector.json", + "aws-ec2-transitgatewaymulticastdomainassociation.json", + "aws-ec2-transitgatewayroutetableassociation.json", + "aws-imagebuilder-image.json", + "aws-elasticache-securitygroupingress.json", + "aws-cloudwatch-dashboard.json", + "aws-cloudwatch-alarm.json", + "aws-guardduty-member.json", + "aws-cloudformation-customresource.json", + "aws-elasticache-parametergroup.json", + "aws-networkfirewall-loggingconfiguration.json", + "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", + "aws-cloudformation-stackset.json", + "aws-ec2-route.json", + "aws-cloudformation-hookversion.json", + "aws-xray-resourcepolicy.json", + "aws-servicecatalog-launchtemplateconstraint.json", + "aws-wafv2-loggingconfiguration.json", + "aws-backup-backupplan.json", + "aws-imagebuilder-distributionconfiguration.json", + "aws-lakeformation-permissions.json", + "aws-cloudfront-publickey.json", + "aws-pcaconnectorad-connector.json", + "aws-identitystore-group.json", + "aws-ram-permission.json", + "aws-datasync-task.json", + "aws-ecs-taskdefinition.json", + "aws-shield-protection.json", + "aws-identitystore-groupmembership.json", + "aws-appsync-functionconfiguration.json", + "aws-fms-notificationchannel.json", + "aws-msk-batchscramsecret.json", + "aws-s3-bucket.json", + "aws-guardduty-ipset.json", + "aws-cloudwatch-insightrule.json", + "aws-batch-schedulingpolicy.json", + "aws-athena-workgroup.json", + "aws-servicecatalog-portfolioshare.json", + "aws-iam-servercertificate.json", + "aws-events-eventbus.json", + "aws-sqs-queueinlinepolicy.json", + "aws-organizations-organization.json", + "aws-ssm-maintenancewindowtarget.json", + "aws-iam-policy.json", + "aws-rds-dbsecuritygroupingress.json", + "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-ec2-volumeattachment.json", + "aws-glue-securityconfiguration.json", + "aws-applicationinsights-application.json", + "aws-ecs-clustercapacityproviderassociations.json", + "aws-appconfig-configurationprofile.json", + "aws-route53resolver-firewallrulegroup.json", + "aws-msk-configuration.json", + "aws-ec2-transitgateway.json", + "aws-ec2-vpcendpointservicepermissions.json", + "aws-ssm-maintenancewindowtask.json", + "aws-ec2-transitgatewaymulticastdomain.json", + "aws-verifiedpermissions-policytemplate.json", + "aws-eks-cluster.json", + "aws-efs-filesystem.json", + "aws-logs-querydefinition.json", + "aws-iam-instanceprofile.json", + "aws-datasync-locationnfs.json", + "aws-certificatemanager-certificate.json", + "aws-sdb-domain.json", + "aws-ec2-subnetroutetableassociation.json", + "aws-servicecatalog-serviceactionassociation.json", + "aws-imagebuilder-containerrecipe.json", + "aws-efs-accesspoint.json", + "aws-redshift-clustersecuritygroupingress.json", + "aws-servicecatalogappregistry-attributegroupassociation.json", + "aws-opensearchservice-domain.json", + "aws-elasticsearch-domain.json", + "aws-servicecatalog-stacksetconstraint.json", + "aws-servicecatalog-tagoption.json", + "aws-servicecatalog-launchroleconstraint.json", + "aws-secretsmanager-resourcepolicy.json", + "aws-cloudformation-hookdefaultversion.json", + "aws-config-configrule.json", + "aws-imagebuilder-workflow.json", + "aws-appsync-apikey.json", + "aws-acmpca-certificateauthorityactivation.json", + "aws-guardduty-threatintelset.json", + "aws-ec2-vpc.json", + "aws-arczonalshift-zonalautoshiftconfiguration.json", + "aws-msk-vpcconnection.json", + "aws-datasync-locationazureblob.json", + "aws-logs-logstream.json", + "aws-route53-recordsetgroup.json", + "aws-opsworks-app.json", + "aws-kinesis-stream.json", + "aws-batch-jobdefinition.json", + "aws-iam-samlprovider.json", + "aws-cloudfront-keygroup.json", + "aws-ec2-networkinterfaceattachment.json", + "aws-codedeploy-deploymentconfig.json", + "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", + "aws-glue-database.json", + "aws-backup-backupvault.json", + "aws-iam-grouppolicy.json", + "aws-scheduler-schedule.json", + "aws-waf-bytematchset.json", + "aws-ec2-routetable.json", + "aws-datasync-locationsmb.json", + "aws-securityhub-standard.json", + "aws-sns-topicinlinepolicy.json", + "aws-organizations-policy.json", + "aws-glue-trigger.json", + "aws-globalaccelerator-listener.json", + "aws-verifiedpermissions-policystore.json", + "aws-ec2-vpcpeeringconnection.json", + "aws-sns-topicpolicy.json", + "aws-networkfirewall-rulegroup.json", + "aws-kms-key.json", + "aws-route53resolver-firewallrulegroupassociation.json", + "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", + "aws-ec2-subnet.json", + "aws-s3objectlambda-accesspoint.json", + "aws-sqs-queuepolicy.json", + "aws-appsync-domainnameapiassociation.json", + "aws-appsync-apicache.json", + "aws-globalaccelerator-endpointgroup.json", + "aws-ec2-transitgatewayconnect.json", + "aws-ec2-securitygroup.json", + "aws-opsworks-volume.json", + "aws-iam-usertogroupaddition.json", + "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", + "aws-ec2-vpngatewayroutepropagation.json", + "aws-glue-crawler.json", + "aws-ssm-patchbaseline.json", + "aws-cloudfront-monitoringsubscription.json", + "aws-efs-mounttarget.json", + "aws-shield-protectiongroup.json", + "aws-iam-user.json", + "aws-emr-instancegroupconfig.json", + "aws-logs-accountpolicy.json", + "aws-s3-bucketpolicy.json", + "aws-appsync-graphqlschema.json", + "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", + "aws-codepipeline-webhook.json", + "aws-servicecatalog-resourceupdateconstraint.json", + "aws-transfer-agreement.json", + "aws-chatbot-slackchannelconfiguration.json", + "aws-cloudfront-distribution.json", + "aws-xray-group.json", + "aws-oam-link.json", + "aws-elasticloadbalancingv2-truststorerevocation.json", + "aws-networkfirewall-firewall.json", + "aws-eventschemas-schema.json", + "aws-kms-replicakey.json", + "aws-redshift-clustersecuritygroup.json", + "aws-ecr-pullthroughcacherule.json", + "aws-glue-mltransform.json", + "aws-datasync-locationefs.json", + "aws-elasticloadbalancingv2-targetgroup.json", + "aws-applicationautoscaling-scalingpolicy.json", + "aws-cloudformation-macro.json", + "aws-lambda-layerversionpermission.json", + "aws-secretsmanager-secret.json", + "aws-elasticache-user.json", + "aws-logs-subscriptionfilter.json", + "aws-codedeploy-application.json", + "aws-lakeformation-principalpermissions.json", + "aws-datasync-locations3.json", + "aws-autoscaling-lifecyclehook.json", + "aws-fsx-datarepositoryassociation.json", + "aws-appsync-resolver.json", + "aws-controltower-landingzone.json", + "aws-route53resolver-resolverqueryloggingconfigassociation.json", + "aws-imagebuilder-lifecyclepolicy.json", + "aws-lambda-eventinvokeconfig.json", + "aws-lambda-layerversion.json", + "aws-rds-optiongroup.json", + "aws-opsworks-userprofile.json", + "aws-ssm-maintenancewindow.json", + "aws-lakeformation-tagassociation.json", + "aws-ec2-ipamresourcediscovery.json", + "aws-imagebuilder-infrastructureconfiguration.json", + "aws-route53resolver-resolverendpoint.json", + "aws-sso-instanceaccesscontrolattributeconfiguration.json", + "aws-ec2-subnetnetworkaclassociation.json", + "aws-servicecatalog-serviceaction.json", + "aws-iam-userpolicy.json", + "aws-cloudfront-originaccesscontrol.json", + "aws-secretsmanager-rotationschedule.json", + "aws-eks-identityproviderconfig.json", + "aws-ec2-ipamresourcediscoveryassociation.json", + "aws-servicecatalogappregistry-attributegroup.json", + "aws-ec2-egressonlyinternetgateway.json", + "aws-ec2-vpccidrblock.json", + "aws-acmpca-certificateauthority.json", + "aws-athena-preparedstatement.json", + "aws-autoscaling-scheduledaction.json", + "aws-lakeformation-resource.json", + "aws-ec2-ipamscope.json", + "aws-rds-eventsubscription.json", + "aws-config-aggregationauthorization.json", + "aws-datasync-agent.json", + "aws-logs-loggroup.json", + "aws-pcaconnectorad-template.json", + "aws-organizations-account.json", + "aws-ecr-repository.json", + "aws-appconfig-extension.json", + "aws-elasticloadbalancingv2-truststore.json", + "aws-ec2-keypair.json", + "aws-ec2-eipassociation.json", + "aws-ec2-capacityreservation.json", + "aws-elasticloadbalancing-loadbalancer.json", + "aws-transfer-user.json", + "aws-iam-rolepolicy.json", + "aws-stepfunctions-statemachine.json", + "aws-rds-dbclusterparametergroup.json", + "aws-scheduler-schedulegroup.json", + "aws-eventschemas-registrypolicy.json", + "aws-route53-keysigningkey.json", + "aws-eventschemas-registry.json", + "aws-events-connection.json", + "aws-athena-datacatalog.json", + "aws-glue-workflow.json", + "aws-ec2-prefixlist.json", + "aws-ec2-instance.json", + "aws-ec2-subnetcidrblock.json", + "aws-waf-sqlinjectionmatchset.json", + "aws-ec2-flowlog.json", + "aws-amazonmq-broker.json", + "aws-emr-step.json", + "aws-ssm-association.json", + "aws-cloudfront-responseheaderspolicy.json", + "aws-securityhub-automationrule.json", + "aws-msk-clusterpolicy.json", + "aws-xray-samplingrule.json", + "aws-transfer-connector.json", + "aws-wafv2-webaclassociation.json", + "aws-oam-sink.json", + "aws-acmpca-certificate.json", + "aws-ec2-ipamallocation.json", + "aws-workspaces-workspace.json", + "aws-ec2-instanceconnectendpoint.json", + "aws-appsync-sourceapiassociation.json", + "aws-datasync-locationobjectstorage.json", + "aws-ecs-capacityprovider.json", + "aws-elasticache-cachecluster.json", + "aws-sagemaker-modelcard.json", + "aws-logs-destination.json", + "aws-eks-nodegroup.json", + "aws-organizations-organizationalunit.json", + "aws-appsync-datasource.json", + "aws-sqs-queue.json", + "aws-ec2-securitygroupingress.json", + "aws-guardduty-detector.json", + "aws-batch-computeenvironment.json", + "aws-athena-namedquery.json", + "aws-lakeformation-datalakesettings.json", + "aws-rds-dbsecuritygroup.json", + "aws-cloudwatch-metricstream.json", + "aws-ssm-parameter.json", + "aws-config-deliverychannel.json", + "aws-iam-oidcprovider.json", + "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", + "aws-servicecatalogappregistry-resourceassociation.json", + "aws-cloudformation-stack.json", + "aws-resourcegroups-group.json", + "aws-cloudformation-resourcedefaultversion.json", + "aws-backup-restoretestingplan.json", + "aws-ec2-ipam.json", + "aws-pcaconnectorad-templategroupaccesscontrolentry.json", + "aws-ec2-transitgatewaypeeringattachment.json", + "aws-cloudfront-cachepolicy.json", + "aws-rds-dbsubnetgroup.json", + "aws-amazonmq-configuration.json", + "aws-accessanalyzer-analyzer.json", + "aws-ec2-ec2fleet.json", + "aws-servicecatalog-cloudformationproduct.json", + "aws-ec2-vpcendpointservice.json", + "aws-iam-managedpolicy.json", + "aws-ec2-launchtemplate.json", + "aws-cloudfront-originrequestpolicy.json", + "aws-datasync-locationfsxontap.json", + "aws-pcaconnectorad-serviceprincipalname.json", + "aws-lambda-version.json", + "aws-ec2-dhcpoptions.json", + "aws-ec2-ipampool.json", + "aws-iam-servicelinkedrole.json", + "aws-cloudformation-hooktypeconfig.json", + "aws-ec2-volume.json", + "aws-verifiedpermissions-policy.json", + "aws-cloudformation-resourceversion.json", + "aws-chatbot-microsoftteamschannelconfiguration.json", + "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", + "aws-s3-accesspoint.json", + "aws-batch-jobqueue.json", + "aws-elasticloadbalancingv2-listener.json", + "aws-cloudformation-waitconditionhandle.json", + "aws-globalaccelerator-accelerator.json", + "aws-eks-addon.json", +] diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-amazonmq-configurationassociation.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-amazonmq-configurationassociation.json new file mode 100644 index 0000000000..2a5ccb1b3b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-amazonmq-configurationassociation.json @@ -0,0 +1,47 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Broker" + ], + "definitions": { + "ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Revision": { + "type": "integer" + } + }, + "required": [ + "Revision", + "Id" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Broker": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/ConfigurationId" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Broker", + "Configuration" + ], + "typeName": "AWS::AmazonMQ::ConfigurationAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-account.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-account.json new file mode 100644 index 0000000000..2fb72e9114 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-account.json @@ -0,0 +1,19 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::ApiGateway::Account", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CloudWatchRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::Account" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-apikey.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-apikey.json new file mode 100644 index 0000000000..bbc59b7abb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-apikey.json @@ -0,0 +1,83 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/GenerateDistinctId", + "/properties/Value" + ], + "definitions": { + "StageKey": { + "additionalProperties": false, + "properties": { + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ApiKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "GenerateDistinctId": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StageKeys": { + "items": { + "$ref": "#/definitions/StageKey" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Value": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ApiKey" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-authorizer.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-authorizer.json new file mode 100644 index 0000000000..9f8245e3e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-authorizer.json @@ -0,0 +1,64 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Authorizer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AuthType": { + "type": "string" + }, + "AuthorizerCredentials": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "maximum": 3600, + "minimum": 0, + "type": "integer" + }, + "AuthorizerUri": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IdentitySource": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProviderARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "Type": { + "enum": [ + "TOKEN", + "REQUEST", + "COGNITO_USER_POOLS" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-basepathmapping.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-basepathmapping.json new file mode 100644 index 0000000000..366b329398 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-basepathmapping.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/BasePath", + "/properties/DomainName" + ], + "description": "Resource Type definition for AWS::ApiGateway::BasePathMapping", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BasePath": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::BasePathMapping" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-clientcertificate.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-clientcertificate.json new file mode 100644 index 0000000000..021bfd6a85 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-clientcertificate.json @@ -0,0 +1,44 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ClientCertificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ClientCertificate" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-deployment.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-deployment.json new file mode 100644 index 0000000000..70dba1a1c0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-deployment.json @@ -0,0 +1,220 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentCanarySettings", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "DeploymentCanarySettings": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "StageDescription": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "MetricsEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Deployment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DeploymentCanarySettings": { + "$ref": "#/definitions/DeploymentCanarySettings" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StageDescription": { + "$ref": "#/definitions/StageDescription" + }, + "StageName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Deployment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-documentationpart.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-documentationpart.json new file mode 100644 index 0000000000..c387182671 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-documentationpart.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Location", + "/properties/RestApiId" + ], + "definitions": { + "Location": { + "additionalProperties": false, + "properties": { + "Method": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "StatusCode": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DocumentationPart", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/Location" + }, + "Properties": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId", + "Properties", + "Location" + ], + "typeName": "AWS::ApiGateway::DocumentationPart" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-documentationversion.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-documentationversion.json new file mode 100644 index 0000000000..6c3162fd9b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-documentationversion.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DocumentationVersion", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::DocumentationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DocumentationVersion", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::DocumentationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-domainname.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-domainname.json new file mode 100644 index 0000000000..c571bde8c2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-domainname.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DomainName", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CertificateArn": { + "type": "string" + }, + "DistributionDomainName": { + "type": "string" + }, + "DistributionHostedZoneId": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "Id": { + "type": "string" + }, + "RegionalCertificateArn": { + "type": "string" + }, + "RegionalDomainName": { + "type": "string" + }, + "RegionalHostedZoneId": { + "type": "string" + }, + "SecurityPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/DistributionDomainName", + "/properties/RegionalDomainName", + "/properties/Id", + "/properties/DistributionHostedZoneId", + "/properties/RegionalHostedZoneId" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::DomainName" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-gatewayresponse.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-gatewayresponse.json new file mode 100644 index 0000000000..13fa8c2dba --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-gatewayresponse.json @@ -0,0 +1,72 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResponseType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::GatewayResponse", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "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": [ + "RestApiId", + "ResponseType" + ], + "typeName": "AWS::ApiGateway::GatewayResponse" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-method.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-method.json new file mode 100644 index 0000000000..c895cf0160 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-method.json @@ -0,0 +1,208 @@ +{ + "additionalProperties": false, + "definitions": { + "Integration": { + "additionalProperties": false, + "properties": { + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CacheNamespace": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandling": { + "type": "string" + }, + "Credentials": { + "type": "string" + }, + "IntegrationHttpMethod": { + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/IntegrationResponse" + }, + "type": "array", + "uniqueItems": true + }, + "PassthroughBehavior": { + "type": "string" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "Type": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, + "IntegrationResponse": { + "additionalProperties": false, + "properties": { + "ContentHandling": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "SelectionPattern": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "MethodResponse": { + "additionalProperties": false, + "properties": { + "ResponseModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Method", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/MethodResponse" + }, + "type": "array", + "uniqueItems": true + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "RequestValidatorId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResourceId", + "RestApiId", + "HttpMethod" + ], + "typeName": "AWS::ApiGateway::Method" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-model.json new file mode 100644 index 0000000000..f93e5b8eb8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-model.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/ContentType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Model", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Schema": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Model" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-requestvalidator.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-requestvalidator.json new file mode 100644 index 0000000000..65d76759ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-requestvalidator.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::RequestValidator", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "ValidateRequestBody": { + "type": "boolean" + }, + "ValidateRequestParameters": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::RequestValidator" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-resource.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-resource.json new file mode 100644 index 0000000000..d99746d395 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-resource.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PathPart", + "/properties/ParentId", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Resource", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "PathPart": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParentId", + "PathPart", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Resource" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-restapi.json new file mode 100644 index 0000000000..857b4a9c90 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-restapi.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::RestApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeySourceType": { + "enum": [ + "HEADER", + "AUTHORIZER" + ], + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Body": { + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "MinimumCompressionSize": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "type": "object" + }, + "RootResourceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/RootResourceId" + ], + "typeName": "AWS::ApiGateway::RestApi" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-stage.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-stage.json new file mode 100644 index 0000000000..715adbbabd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-stage.json @@ -0,0 +1,167 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StageName", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "DeploymentId": { + "type": "string" + }, + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Stage", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DeploymentId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Stage" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-usageplan.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-usageplan.json new file mode 100644 index 0000000000..73b66424f8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-usageplan.json @@ -0,0 +1,107 @@ +{ + "additionalProperties": false, + "definitions": { + "ApiStage": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "Throttle": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ThrottleSettings" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "QuotaSettings": { + "additionalProperties": false, + "properties": { + "Limit": { + "type": "integer" + }, + "Offset": { + "type": "integer" + }, + "Period": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "ThrottleSettings": { + "additionalProperties": false, + "properties": { + "BurstLimit": { + "type": "integer" + }, + "RateLimit": { + "type": "number" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::UsagePlan", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiStages": { + "items": { + "$ref": "#/definitions/ApiStage" + }, + "type": "array", + "uniqueItems": true + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Quota": { + "$ref": "#/definitions/QuotaSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throttle": { + "$ref": "#/definitions/ThrottleSettings" + }, + "UsagePlanName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::UsagePlan" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-usageplankey.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-usageplankey.json new file mode 100644 index 0000000000..6454c66f61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-usageplankey.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyType", + "/properties/UsagePlanId", + "/properties/KeyId" + ], + "description": "Resource Type definition for AWS::ApiGateway::UsagePlanKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "KeyId": { + "type": "string" + }, + "KeyType": { + "enum": [ + "API_KEY" + ], + "type": "string" + }, + "UsagePlanId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "KeyType", + "UsagePlanId", + "KeyId" + ], + "typeName": "AWS::ApiGateway::UsagePlanKey" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-vpclink.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-vpclink.json new file mode 100644 index 0000000000..019f5635d9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-vpclink.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetArns" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::VpcLink", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TargetArns", + "Name" + ], + "typeName": "AWS::ApiGateway::VpcLink" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-appsync-graphqlapi.json similarity index 100% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-appsync-graphqlapi.json rename to src/cfnlint/data/schemas/providers/eu_central_2/aws-appsync-graphqlapi.json diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-autoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-autoscaling-scalingpolicy.json new file mode 100644 index 0000000000..e2d74dd76a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-autoscaling-scalingpolicy.json @@ -0,0 +1,468 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AutoScalingGroupName" + ], + "definitions": { + "CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "enum": [ + "Average", + "Minimum", + "Maximum", + "SampleCount", + "Sum" + ], + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Statistic", + "Namespace" + ], + "type": "object" + }, + "Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "MetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/MetricStat" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/Metric" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Stat", + "Metric" + ], + "type": "object" + }, + "PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "enum": [ + "ASGAverageCPUUtilization", + "ASGAverageNetworkIn", + "ASGAverageNetworkOut", + "ALBRequestCountPerTarget" + ], + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacityBreachBehavior": { + "type": "string" + }, + "MaxCapacityBuffer": { + "type": "integer" + }, + "MetricSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PredictiveScalingMetricSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Mode": { + "type": "string" + }, + "SchedulingBufferTime": { + "type": "integer" + } + }, + "required": [ + "MetricSpecifications" + ], + "type": "object" + }, + "PredictiveScalingCustomizedCapacityMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedLoadMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedScalingMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "CustomizedCapacityMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedCapacityMetric" + }, + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedLoadMetric" + }, + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedScalingMetric" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedLoadMetric" + }, + "PredefinedMetricPairSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedMetricPair" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedScalingMetric" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "PredictiveScalingPredefinedLoadMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedMetricPair": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedScalingMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "StepAdjustment": { + "additionalProperties": false, + "insertionOrder": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/PredefinedMetricSpecification" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + } + }, + "description": "The AWS::AutoScaling::ScalingPolicy resource specifies an Amazon EC2 Auto Scaling scaling policy so that the Auto Scaling group can scale the number of instances available for your application.", + "handlers": { + "create": { + "permissions": [ + "autoscaling:DescribePolicies", + "autoscaling:PutScalingPolicy" + ] + }, + "delete": { + "permissions": [ + "autoscaling:DeletePolicy", + "autoscaling:DescribePolicies" + ] + }, + "list": { + "permissions": [ + "autoscaling:DescribePolicies" + ] + }, + "read": { + "permissions": [ + "autoscaling:DescribePolicies" + ] + }, + "update": { + "permissions": [ + "autoscaling:DescribePolicies", + "autoscaling:PutScalingPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "AdjustmentType": { + "description": "Specifies how the scaling adjustment is interpreted. The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.", + "enum": [ + "ChangeInCapacity", + "ExactCapacity", + "PercentChangeInCapacity" + ], + "type": "string" + }, + "Arn": { + "description": "The ARN of the AutoScaling scaling policy", + "type": "string" + }, + "AutoScalingGroupName": { + "description": "The name of the Auto Scaling group.", + "type": "string" + }, + "Cooldown": { + "description": "The duration of the policy's cooldown period, in seconds. When a cooldown period is specified here, it overrides the default cooldown period defined for the Auto Scaling group.", + "type": "string" + }, + "EstimatedInstanceWarmup": { + "description": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. If not provided, the default is to use the value from the default cooldown period for the Auto Scaling group. Valid only if the policy type is TargetTrackingScaling or StepScaling.", + "type": "integer" + }, + "MetricAggregationType": { + "description": "The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average. Valid only if the policy type is StepScaling.", + "enum": [ + "Average", + "Maximum", + "Minimum" + ], + "type": "string" + }, + "MinAdjustmentMagnitude": { + "description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a MinAdjustmentMagnitude of 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.", + "type": "integer" + }, + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "description": "One of the following policy types: TargetTrackingScaling, StepScaling, SimpleScaling (default), PredictiveScaling", + "enum": [ + "PredictiveScaling", + "SimpleScaling", + "StepScaling", + "TargetTrackingScaling" + ], + "type": "string" + }, + "PredictiveScalingConfiguration": { + "$ref": "#/definitions/PredictiveScalingConfiguration", + "description": "A predictive scaling policy. Includes support for predefined metrics only." + }, + "ScalingAdjustment": { + "description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. Required if the policy type is SimpleScaling. (Not used with any other policy type.)", + "type": "integer" + }, + "StepAdjustments": { + "description": "A set of adjustments that enable you to scale based on the size of the alarm breach. Required if the policy type is StepScaling. (Not used with any other policy type.)", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/StepAdjustment" + }, + "type": "array", + "uniqueItems": true + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/TargetTrackingConfiguration", + "description": "A target tracking scaling policy. Includes support for predefined or customized metrics." + } + }, + "readOnlyProperties": [ + "/properties/PolicyName", + "/properties/Arn" + ], + "required": [ + "AutoScalingGroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-autoscaling.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::AutoScaling::ScalingPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-cloudformation-waitcondition.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-cloudformation-waitcondition.json new file mode 100644 index 0000000000..822d109c45 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-cloudformation-waitcondition.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::CloudFormation::WaitCondition", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Count": { + "type": "integer" + }, + "Data": { + "type": "object" + }, + "Handle": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Timeout": { + "maximum": 43200, + "minimum": 0, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Data" + ], + "typeName": "AWS::CloudFormation::WaitCondition" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-customactiontype.json new file mode 100644 index 0000000000..3a9fc75003 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-customactiontype.json @@ -0,0 +1,130 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigurationProperties", + "/properties/Version", + "/properties/OutputArtifactDetails", + "/properties/InputArtifactDetails", + "/properties/Settings", + "/properties/Provider", + "/properties/Category" + ], + "definitions": { + "ArtifactDetails": { + "additionalProperties": false, + "properties": { + "MaximumCount": { + "type": "integer" + }, + "MinimumCount": { + "type": "integer" + } + }, + "required": [ + "MinimumCount", + "MaximumCount" + ], + "type": "object" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Key": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { + "enum": [ + "String", + "Number", + "Boolean" + ], + "type": "string" + } + }, + "required": [ + "Secret", + "Required", + "Key", + "Name" + ], + "type": "object" + }, + "Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodePipeline::CustomActionType", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { + "items": { + "$ref": "#/definitions/ConfigurationProperties" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "InputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "Provider": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/Settings" + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Category", + "InputArtifactDetails", + "OutputArtifactDetails", + "Provider" + ], + "typeName": "AWS::CodePipeline::CustomActionType" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-pipeline.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-pipeline.json new file mode 100644 index 0000000000..0a42b76145 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-pipeline.json @@ -0,0 +1,394 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "ActionDeclaration": { + "additionalProperties": false, + "properties": { + "ActionTypeId": { + "$ref": "#/definitions/ActionTypeId" + }, + "Configuration": { + "type": "object" + }, + "InputArtifacts": { + "items": { + "$ref": "#/definitions/InputArtifact" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + }, + "OutputArtifacts": { + "items": { + "$ref": "#/definitions/OutputArtifact" + }, + "type": "array", + "uniqueItems": false + }, + "RoleArn": { + "type": "string" + }, + "RunOrder": { + "type": "integer" + } + }, + "required": [ + "ActionTypeId", + "Name" + ], + "type": "object" + }, + "ActionTypeId": { + "additionalProperties": false, + "properties": { + "Category": { + "enum": [ + "Source", + "Build", + "Deploy", + "Test", + "Invoke", + "Approval" + ], + "type": "string" + }, + "Owner": { + "enum": [ + "AWS", + "ThirdParty", + "Custom" + ], + "type": "string" + }, + "Provider": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Owner", + "Category", + "Version", + "Provider" + ], + "type": "object" + }, + "ArtifactStore": { + "additionalProperties": false, + "properties": { + "EncryptionKey": { + "$ref": "#/definitions/EncryptionKey" + }, + "Location": { + "type": "string" + }, + "Type": { + "enum": [ + "S3" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Location" + ], + "type": "object" + }, + "BlockerDeclaration": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "enum": [ + "Schedule" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Name" + ], + "type": "object" + }, + "EncryptionKey": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type", + "Id" + ], + "type": "object" + }, + "GitConfiguration": { + "additionalProperties": false, + "properties": { + "Push": { + "items": { + "$ref": "#/definitions/GitPushDeclaration" + }, + "type": "array", + "uniqueItems": false + }, + "SourceActionName": { + "type": "string" + } + }, + "type": "object" + }, + "GitPushDeclaration": { + "additionalProperties": false, + "properties": { + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "type": "object" + }, + "InputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "OutputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "StageDeclaration": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/ActionDeclaration" + }, + "type": "array", + "uniqueItems": false + }, + "Blockers": { + "items": { + "$ref": "#/definitions/BlockerDeclaration" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Actions", + "Name" + ], + "type": "object" + }, + "StageTransition": { + "additionalProperties": false, + "properties": { + "Reason": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "StageName", + "Reason" + ], + "type": "object" + }, + "Tags": { + "additionalProperties": false, + "properties": { + "Excludes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Includes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "TriggerDeclaration": { + "additionalProperties": false, + "properties": { + "GitConfiguration": { + "$ref": "#/definitions/GitConfiguration" + }, + "ProviderType": { + "type": "string" + } + }, + "type": "object" + }, + "VariableDeclaration": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodePipeline::Pipeline", + "oneOf": [ + { + "properties": { + "ArtifactStores": false + }, + "required": [ + "ArtifactStore" + ], + "type": "object" + }, + { + "properties": { + "ArtifactStore": false + }, + "required": [ + "ArtifactStores" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['ArtifactStore', 'ArtifactStores']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ArtifactStore": { + "$ref": "#/definitions/ArtifactStore" + }, + "DisableInboundStageTransitions": { + "items": { + "$ref": "#/definitions/StageTransition" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PipelineType": { + "type": "string" + }, + "RestartExecutionOnUpdate": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "Stages": { + "items": { + "$ref": "#/definitions/StageDeclaration" + }, + "type": "array", + "uniqueItems": false + }, + "Triggers": { + "items": { + "$ref": "#/definitions/TriggerDeclaration" + }, + "type": "array", + "uniqueItems": false + }, + "Variables": { + "items": { + "$ref": "#/definitions/VariableDeclaration" + }, + "type": "array", + "uniqueItems": false + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Version" + ], + "required": [ + "ArtifactStore", + "Stages", + "RoleArn" + ], + "typeName": "AWS::CodePipeline::Pipeline" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-datapipeline-pipeline.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-datapipeline-pipeline.json new file mode 100644 index 0000000000..d2d735d9b1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-datapipeline-pipeline.json @@ -0,0 +1,173 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "StringValue", + "Key" + ], + "type": "object" + }, + "ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/ParameterAttribute" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/Field" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DataPipeline::Pipeline", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/ParameterObject" + }, + "type": "array", + "uniqueItems": false + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/ParameterValue" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/PipelineObject" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/PipelineTag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParameterObjects", + "Name" + ], + "typeName": "AWS::DataPipeline::Pipeline" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-directoryservice-microsoftad.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-directoryservice-microsoftad.json new file mode 100644 index 0000000000..2ff7abecf1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-directoryservice-microsoftad.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcSettings", + "/properties/Edition", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::MicrosoftAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Edition": { + "enum": [ + "Enterprise", + "Standard" + ], + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::MicrosoftAD" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-directoryservice-simplead.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-directoryservice-simplead.json new file mode 100644 index 0000000000..7646d8ecbe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-directoryservice-simplead.json @@ -0,0 +1,93 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Size", + "/properties/VpcSettings", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/Description", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::SimpleAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "enum": [ + "Small", + "Large" + ], + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Size", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::SimpleAD" +} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-customergateway.json new file mode 100644 index 0000000000..fb66d92fc4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-customergateway.json @@ -0,0 +1,63 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/IpAddress", + "/properties/BgpAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CustomerGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BgpAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "IpAddress", + "BgpAsn" + ], + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-eip.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-eip.json new file mode 100644 index 0000000000..1b598ecc17 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-eip.json @@ -0,0 +1,65 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Domain", + "/properties/NetworkBorderGroup" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::EIP", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocationId": { + "type": "string" + }, + "Domain": { + "enum": [ + "vpc", + "standard" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkBorderGroup": { + "type": "string" + }, + "PublicIpv4Pool": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/AllocationId" + ], + "typeName": "AWS::EC2::EIP" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json new file mode 100644 index 0000000000..30e7b5c2d0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-host.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceType", + "/properties/AvailabilityZone" + ], + "description": "Resource Type definition for AWS::EC2::Host", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoPlacement": { + "enum": [ + "on", + "off" + ], + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "HostRecovery": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone", + "InstanceType" + ], + "typeName": "AWS::EC2::Host" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkinterface.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkinterface.json new file mode 100644 index 0000000000..d265a3421d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkinterface.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PrivateIpAddress", + "/properties/InterfaceType", + "/properties/SubnetId" + ], + "definitions": { + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::NetworkInterface", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InterfaceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "PrimaryPrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SecondaryPrivateIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecondaryPrivateIpAddresses", + "/properties/PrimaryPrivateIpAddress" + ], + "required": [ + "SubnetId" + ], + "typeName": "AWS::EC2::NetworkInterface" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkinterfacepermission.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkinterfacepermission.json new file mode 100644 index 0000000000..f16f086ec1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-networkinterfacepermission.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/Permission", + "/properties/NetworkInterfaceId" + ], + "description": "Resource Type definition for AWS::EC2::NetworkInterfacePermission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AwsAccountId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "Permission": { + "enum": [ + "INSTANCE-ATTACH", + "EIP-ASSOCIATE" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AwsAccountId", + "Permission", + "NetworkInterfaceId" + ], + "typeName": "AWS::EC2::NetworkInterfacePermission" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-placementgroup.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-placementgroup.json new file mode 100644 index 0000000000..03b09a1350 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-placementgroup.json @@ -0,0 +1,104 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Strategy", + "/properties/SpreadLevel", + "/properties/PartitionCount" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::PlacementGroup", + "handlers": { + "create": { + "permissions": [ + "ec2:CreatePlacementGroup", + "ec2:DescribePlacementGroups", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeletePlacementGroup", + "ec2:DescribePlacementGroups" + ] + }, + "list": { + "permissions": [ + "ec2:DescribePlacementGroups" + ] + }, + "read": { + "permissions": [ + "ec2:DescribePlacementGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/GroupName" + ], + "properties": { + "GroupName": { + "description": "The Group Name of Placement Group.", + "type": "string" + }, + "PartitionCount": { + "description": "The number of partitions. Valid only when **Strategy** is set to `partition`", + "type": "integer" + }, + "SpreadLevel": { + "description": "The Spread Level of Placement Group is an enum where it accepts either host or rack when strategy is spread", + "type": "string" + }, + "Strategy": { + "description": "The placement strategy.", + "enum": [ + "cluster", + "partition", + "spread" + ], + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/GroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", + "tagging": { + "cloudFormationSystemTags": false, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::EC2::PlacementGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-spotfleet.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-spotfleet.json new file mode 100644 index 0000000000..6e41574e03 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-spotfleet.json @@ -0,0 +1,1072 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SpotFleetRequestConfigData/AllocationStrategy", + "/properties/SpotFleetRequestConfigData/IamFleetRole", + "/properties/SpotFleetRequestConfigData/InstanceInterruptionBehavior", + "/properties/SpotFleetRequestConfigData/InstancePoolsToUseCount", + "/properties/SpotFleetRequestConfigData/LaunchSpecifications", + "/properties/SpotFleetRequestConfigData/LaunchTemplateConfigs", + "/properties/SpotFleetRequestConfigData/LoadBalancersConfig", + "/properties/SpotFleetRequestConfigData/OnDemandAllocationStrategy", + "/properties/SpotFleetRequestConfigData/OnDemandMaxTotalPrice", + "/properties/SpotFleetRequestConfigData/OnDemandTargetCapacity", + "/properties/SpotFleetRequestConfigData/ReplaceUnhealthyInstances", + "/properties/SpotFleetRequestConfigData/SpotMaintenanceStrategies", + "/properties/SpotFleetRequestConfigData/SpotMaxTotalPrice", + "/properties/SpotFleetRequestConfigData/SpotPrice", + "/properties/SpotFleetRequestConfigData/TagSpecifications", + "/properties/SpotFleetRequestConfigData/TerminateInstancesWithExpiration", + "/properties/SpotFleetRequestConfigData/Type", + "/properties/SpotFleetRequestConfigData/ValidFrom", + "/properties/SpotFleetRequestConfigData/ValidUntil" + ], + "definitions": { + "AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/ClassicLoadBalancer" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "maxLength": 128, + "minLength": 3, + "pattern": "[a-zA-Z0-9\\(\\)\\.\\-/_]+", + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "integer" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "enum": [ + "nvidia", + "amd", + "amazon-web-services", + "xilinx" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AcceleratorNames": { + "items": { + "enum": [ + "a100", + "v100", + "k80", + "t4", + "m60", + "radeon-pro-v520", + "vu9p", + "inferentia", + "k520" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "enum": [ + "gpu", + "fpga", + "inference" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AllowedInstanceTypes": { + "items": { + "maxLength": 30, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\.\\*]+", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "BareMetal": { + "enum": [ + "included", + "required", + "excluded" + ], + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "enum": [ + "included", + "required", + "excluded" + ], + "type": "string" + }, + "CpuManufacturers": { + "items": { + "enum": [ + "intel", + "amd", + "amazon-web-services" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ExcludedInstanceTypes": { + "items": { + "maxLength": 30, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\.\\*]+", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "InstanceGenerations": { + "items": { + "enum": [ + "current", + "previous" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "LocalStorage": { + "enum": [ + "included", + "required", + "excluded" + ], + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "enum": [ + "hdd", + "ssd" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/MemoryMiBRequest" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/VCpuCountRangeRequest" + } + }, + "type": "object" + }, + "LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/FleetLaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/LaunchTemplateOverrides" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirementsRequest" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/TargetGroupsConfig" + } + }, + "type": "object" + }, + "MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "SpotCapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "enum": [ + "launch", + "launch-before-terminate" + ], + "type": "string" + }, + "TerminationDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "default": false, + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/IamInstanceProfileSpecification" + }, + "ImageId": { + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirementsRequest" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/SpotFleetMonitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/InstanceNetworkInterfaceSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Placement": { + "$ref": "#/definitions/SpotPlacement" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/GroupIdentifier" + }, + "type": "array", + "uniqueItems": true + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetTagSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "UserData": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "ImageId" + ], + "type": "object" + }, + "SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "enum": [ + "capacityOptimized", + "capacityOptimizedPrioritized", + "diversified", + "lowestPrice", + "priceCapacityOptimized" + ], + "type": "string" + }, + "Context": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "enum": [ + "Default", + "NoTermination", + "default", + "noTermination" + ], + "type": "string" + }, + "IamFleetRole": { + "awsType": "IamRoleArn", + "type": "string" + }, + "InstanceInterruptionBehavior": { + "enum": [ + "hibernate", + "stop", + "terminate" + ], + "type": "string" + }, + "InstancePoolsToUseCount": { + "type": "integer" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetLaunchSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/LaunchTemplateConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/LoadBalancersConfig" + }, + "OnDemandAllocationStrategy": { + "type": "string" + }, + "OnDemandMaxTotalPrice": { + "type": "string" + }, + "OnDemandTargetCapacity": { + "type": "integer" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotMaintenanceStrategies": { + "$ref": "#/definitions/SpotMaintenanceStrategies" + }, + "SpotMaxTotalPrice": { + "type": "string" + }, + "SpotPrice": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetTagSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "TargetCapacity": { + "type": "integer" + }, + "TargetCapacityUnitType": { + "enum": [ + "vcpu", + "memory-mib", + "units" + ], + "type": "string" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "enum": [ + "maintain", + "request" + ], + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { + "type": "string" + } + }, + "required": [ + "IamFleetRole", + "TargetCapacity" + ], + "type": "object" + }, + "SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "enum": [ + "client-vpn-endpoint", + "customer-gateway", + "dedicated-host", + "dhcp-options", + "egress-only-internet-gateway", + "elastic-gpu", + "elastic-ip", + "export-image-task", + "export-instance-task", + "fleet", + "fpga-image", + "host-reservation", + "image", + "import-image-task", + "import-snapshot-task", + "instance", + "internet-gateway", + "key-pair", + "launch-template", + "local-gateway-route-table-vpc-association", + "natgateway", + "network-acl", + "network-insights-analysis", + "network-insights-path", + "network-interface", + "placement-group", + "reserved-instances", + "route-table", + "security-group", + "snapshot", + "spot-fleet-request", + "spot-instances-request", + "subnet", + "traffic-mirror-filter", + "traffic-mirror-session", + "traffic-mirror-target", + "transit-gateway", + "transit-gateway-attachment", + "transit-gateway-connect-peer", + "transit-gateway-multicast-domain", + "transit-gateway-route-table", + "volume", + "vpc", + "vpc-flow-log", + "vpc-peering-connection", + "vpn-connection", + "vpn-gateway" + ], + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "SpotMaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/SpotCapacityRebalance" + } + }, + "type": "object" + }, + "SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Tenancy": { + "enum": [ + "dedicated", + "default", + "host" + ], + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroup" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + }, + "TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::SpotFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:RequestSpotFleet", + "ec2:DescribeSpotFleetRequests" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSpotFleetRequests", + "ec2:CancelSpotFleetRequests" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSpotFleetRequests" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSpotFleetRequests" + ] + }, + "update": { + "permissions": [ + "ec2:ModifySpotFleetRequest", + "ec2:DescribeSpotFleetRequests" + ] + } + }, + "oneOf": [ + { + "properties": { + "LaunchTemplateConfigs": false + }, + "required": [ + "LaunchSpecifications" + ], + "type": "object" + }, + { + "properties": { + "LaunchSpecifications": false + }, + "required": [ + "LaunchTemplateConfigs" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['LaunchSpecifications', 'LaunchTemplateConfigs']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/SpotFleetRequestConfigData" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SpotFleetRequestConfigData" + ], + "typeName": "AWS::EC2::SpotFleet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-transitgatewayattachment.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-transitgatewayattachment.json new file mode 100644 index 0000000000..47b853e538 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-transitgatewayattachment.json @@ -0,0 +1,157 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/VpcId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::TransitGatewayAttachment", + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "description": "The options for the transit gateway vpc attachment.", + "properties": { + "ApplianceModeSupport": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "DnsSupport": { + "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "Ipv6Support": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + } + }, + "type": "object" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "SubnetIds", + "TransitGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-transitgatewayroute.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-transitgatewayroute.json new file mode 100644 index 0000000000..ba5a41f952 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-transitgatewayroute.json @@ -0,0 +1,37 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Blackhole", + "/properties/TransitGatewayRouteTableId", + "/properties/TransitGatewayAttachmentId", + "/properties/DestinationCidrBlock" + ], + "description": "Resource Type definition for AWS::EC2::TransitGatewayRoute", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Blackhole": { + "type": "boolean" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TransitGatewayRouteTableId" + ], + "typeName": "AWS::EC2::TransitGatewayRoute" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-transitgatewayvpcattachment.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-transitgatewayvpcattachment.json new file mode 100644 index 0000000000..390b6a9424 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-transitgatewayvpcattachment.json @@ -0,0 +1,141 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/SubnetIds", + "/properties/VpcId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::TransitGatewayVpcAttachment", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags" + ] + }, + "update": { + "permissions": [ + "ec2:ModifyTransitGatewayVpcAttachment", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DeleteTags", + "ec2:CreateTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AddSubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "description": "The options for the transit gateway vpc attachment.", + "properties": { + "ApplianceModeSupport": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "DnsSupport": { + "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "Ipv6Support": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + } + }, + "type": "object" + }, + "RemoveSubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SubnetIds", + "VpcId", + "TransitGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayVpcAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpcendpoint.json new file mode 100644 index 0000000000..c3678aa75e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpcendpoint.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/ServiceName" + ], + "description": "Resource Type definition for AWS::EC2::VPCEndpoint", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "ServiceName" + ], + "typeName": "AWS::EC2::VPCEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..1eadcb5ca9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnection.json @@ -0,0 +1,87 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/StaticRoutesOnly", + "/properties/VpnGatewayId", + "/properties/VpnTunnelOptionsSpecifications" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNConnection", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnectionroute.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnectionroute.json new file mode 100644 index 0000000000..937c564bf6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpnconnectionroute.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DestinationCidrBlock", + "/properties/VpnConnectionId" + ], + "description": "Resource Type definition for AWS::EC2::VPNConnectionRoute", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DestinationCidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], + "typeName": "AWS::EC2::VPNConnectionRoute" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..75dbfb349e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpngateway.json @@ -0,0 +1,54 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/AmazonSideAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonSideAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecr-registrypolicy.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecr-registrypolicy.json new file mode 100644 index 0000000000..5ec89ffc01 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecr-registrypolicy.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "definitions": { + "RegistryId": { + "description": "The registry id.", + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + } + }, + "description": "The AWS::ECR::RegistryPolicy is used to specify permissions for another AWS account and is used when configuring cross-account replication. For more information, see Registry permissions in the Amazon Elastic Container Registry User Guide: https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html", + "handlers": { + "create": { + "permissions": [ + "ecr:PutRegistryPolicy" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRegistryPolicy" + ] + }, + "list": { + "permissions": [ + "ecr:GetRegistryPolicy" + ] + }, + "read": { + "permissions": [ + "ecr:GetRegistryPolicy" + ] + }, + "update": { + "permissions": [ + "ecr:PutRegistryPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/RegistryId" + ], + "properties": { + "PolicyText": { + "description": "The JSON policy text to apply to your registry. The policy text follows the same format as IAM policy text. For more information, see Registry permissions (https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html) in the Amazon Elastic Container Registry User Guide.", + "type": "object" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "readOnlyProperties": [ + "/properties/RegistryId" + ], + "required": [ + "PolicyText" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "typeName": "AWS::ECR::RegistryPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-cluster.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-cluster.json new file mode 100644 index 0000000000..eee698bbc5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-cluster.json @@ -0,0 +1,199 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterName" + ], + "definitions": { + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "description": "A capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used.", + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "ClusterConfiguration": { + "additionalProperties": false, + "description": "The configurations to be set at cluster level.", + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/ExecuteCommandConfiguration" + } + }, + "type": "object" + }, + "ClusterSettings": { + "additionalProperties": false, + "description": "The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandConfiguration": { + "additionalProperties": false, + "description": "The configuration for ExecuteCommand.", + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "description": "The session logging configuration for ExecuteCommand.", + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectDefaults": { + "additionalProperties": false, + "description": "Service Connect Configuration default for all services or tasks within this cluster", + "properties": { + "Namespace": { + "description": "Service Connect Namespace Name or ARN default for all services or tasks within this cluster", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Create an Elastic Container Service (ECS) cluster.", + "handlers": { + "create": { + "permissions": [ + "ecs:CreateCluster", + "ecs:DescribeClusters", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteCluster", + "ecs:DescribeClusters" + ] + }, + "list": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:ListClusters" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeClusters" + ] + }, + "update": { + "permissions": [ + "ecs:PutAccountSettingDefault", + "ecs:DescribeClusters", + "ecs:TagResource", + "ecs:UntagResource", + "ecs:PutAccountSetting", + "ecs:ListTagsForResource", + "ecs:UpdateCluster", + "ecs:UpdateClusterSettings", + "ecs:PutClusterCapacityProviders" + ] + } + }, + "primaryIdentifier": [ + "/properties/ClusterName" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Amazon ECS cluster, such as arn:aws:ecs:us-east-2:123456789012:cluster/MyECSCluster.", + "type": "string" + }, + "CapacityProviders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterName": { + "description": "A user-generated string that you use to identify your cluster. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name.", + "type": "string" + }, + "ClusterSettings": { + "items": { + "$ref": "#/definitions/ClusterSettings" + }, + "type": "array" + }, + "Configuration": { + "$ref": "#/definitions/ClusterConfiguration" + }, + "DefaultCapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "ServiceConnectDefaults": { + "$ref": "#/definitions/ServiceConnectDefaults" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::ECS::Cluster", + "writeOnlyProperties": [ + "/properties/ServiceConnectDefaults" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-taskset.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-taskset.json new file mode 100644 index 0000000000..4dd38f7ef4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ecs-taskset.json @@ -0,0 +1,215 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Cluster", + "/properties/ExternalId", + "/properties/LaunchType", + "/properties/LoadBalancers", + "/properties/NetworkConfiguration", + "/properties/PlatformVersion", + "/properties/Service", + "/properties/ServiceRegistries", + "/properties/TaskDefinition" + ], + "definitions": { + "AwsVpcConfiguration": { + "additionalProperties": false, + "description": "The VPC subnets and security groups associated with a task. All specified subnets and security groups must be from the same VPC.", + "properties": { + "AssignPublicIp": { + "description": "Whether the task's elastic network interface receives a public IP address. The default value is DISABLED.", + "enum": [ + "DISABLED", + "ENABLED" + ], + "type": "string" + }, + "SecurityGroups": { + "description": "The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. There is a limit of 5 security groups that can be specified per AwsVpcConfiguration.", + "items": { + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "Subnets": { + "description": "The subnets associated with the task or service. There is a limit of 16 subnets that can be specified per AwsVpcConfiguration.", + "items": { + "type": "string" + }, + "maxItems": 16, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "LoadBalancer": { + "additionalProperties": false, + "description": "A load balancer object representing the load balancer to use with the task set. The supported load balancer types are either an Application Load Balancer or a Network Load Balancer. ", + "properties": { + "ContainerName": { + "description": "The name of the container (as it appears in a container definition) to associate with the load balancer.", + "type": "string" + }, + "ContainerPort": { + "description": "The port on the container to associate with the load balancer. This port must correspond to a containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they are launched on must allow ingress traffic on the hostPort of the port mapping.", + "type": "integer" + }, + "TargetGroupArn": { + "description": "The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set. A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you are using a Classic Load Balancer this should be omitted. For services using the ECS deployment controller, you can specify one or multiple target groups. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html in the Amazon Elastic Container Service Developer Guide. For services using the CODE_DEPLOY deployment controller, you are required to define two target groups for the load balancer. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html in the Amazon Elastic Container Service Developer Guide. If your service's task definition uses the awsvpc network mode (which is required for the Fargate launch type), you must choose ip as the target type, not instance, when creating your target groups because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.", + "type": "string" + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "description": "An object representing the network configuration for a task or service.", + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "description": "The unit of measure for the scale value.", + "enum": [ + "PERCENT" + ], + "type": "string" + }, + "Value": { + "description": "The value, specified as a percent total of a service's desiredCount, to scale the task set. Accepted values are numbers between 0 and 100.", + "maximum": 100, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "description": "The container name value, already specified in the task definition, to be used for your service discovery service. If the task definition that your service task specifies uses the bridge or host network mode, you must specify a containerName and containerPort combination from the task definition. If the task definition that your service task specifies uses the awsvpc network mode and a type SRV DNS record is used, you must specify either a containerName and containerPort combination or a port value, but not both.", + "type": "string" + }, + "ContainerPort": { + "description": "The port value, already specified in the task definition, to be used for your service discovery service. If the task definition your service task specifies uses the bridge or host network mode, you must specify a containerName and containerPort combination from the task definition. If the task definition your service task specifies uses the awsvpc network mode and a type SRV DNS record is used, you must specify either a containerName and containerPort combination or a port value, but not both.", + "type": "integer" + }, + "Port": { + "description": "The port value used if your service discovery service specified an SRV record. This field may be used if both the awsvpc network mode and SRV records are used.", + "type": "integer" + }, + "RegistryArn": { + "description": "The Amazon Resource Name (ARN) of the service registry. The currently supported service registry is AWS Cloud Map. For more information, see https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html", + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.htmlin the Amazon Elastic Container Service Developer Guide.", + "handlers": { + "create": { + "permissions": [ + "ecs:CreateTaskSet", + "ecs:DescribeTaskSets" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteTaskSet", + "ecs:DescribeTaskSets" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeTaskSets" + ] + }, + "update": { + "permissions": [ + "ecs:UpdateTaskSet", + "ecs:DescribeTaskSets" + ] + } + }, + "primaryIdentifier": [ + "/properties/Cluster", + "/properties/Service", + "/properties/Id" + ], + "properties": { + "Cluster": { + "description": "The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to create the task set in.", + "type": "string" + }, + "ExternalId": { + "description": "An optional non-unique tag that identifies this task set in external systems. If the task set is associated with a service discovery registry, the tasks in this task set will have the ECS_TASK_SET_EXTERNAL_ID AWS Cloud Map attribute set to the provided value. ", + "type": "string" + }, + "Id": { + "description": "The ID of the task set.", + "type": "string" + }, + "LaunchType": { + "description": "The launch type that new tasks in the task set will use. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html in the Amazon Elastic Container Service Developer Guide. ", + "enum": [ + "EC2", + "FARGATE" + ], + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PlatformVersion": { + "description": "The platform version that the tasks in the task set should use. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the LATEST platform version is used by default.", + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/Scale", + "description": "A floating-point percentage of the desired number of tasks to place and keep running in the task set." + }, + "Service": { + "description": "The short name or full Amazon Resource Name (ARN) of the service to create the task set in.", + "type": "string" + }, + "ServiceRegistries": { + "description": "The details of the service discovery registries to assign to this task set. For more information, see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html.", + "items": { + "$ref": "#/definitions/ServiceRegistry" + }, + "type": "array" + }, + "TaskDefinition": { + "description": "The short name or full Amazon Resource Name (ARN) of the task definition for the tasks in the task set to use.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecs.git", + "typeName": "AWS::ECS::TaskSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticache-subnetgroup.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticache-subnetgroup.json new file mode 100644 index 0000000000..80ce070829 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticache-subnetgroup.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CacheSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElastiCache::SubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::ElastiCache::SubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-application.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-application.json new file mode 100644 index 0000000000..b613aba6c6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-application.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName" + ], + "definitions": { + "ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/MaxCountRule" + } + }, + "type": "object" + }, + "MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "integer" + } + }, + "type": "object" + }, + "MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Application", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/ApplicationResourceLifecycleConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ElasticBeanstalk::Application" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-applicationversion.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-applicationversion.json new file mode 100644 index 0000000000..1b3a2845a4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-applicationversion.json @@ -0,0 +1,51 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/SourceBundle" + ], + "definitions": { + "SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/SourceBundle" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "SourceBundle" + ], + "typeName": "AWS::ElasticBeanstalk::ApplicationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-configurationtemplate.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-configurationtemplate.json new file mode 100644 index 0000000000..bd1a025e3f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-configurationtemplate.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PlatformArn", + "/properties/ApplicationName", + "/properties/SolutionStackName", + "/properties/EnvironmentId", + "/properties/SourceConfiguration" + ], + "definitions": { + "ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/ConfigurationOptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/SourceConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::ConfigurationTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-environment.json new file mode 100644 index 0000000000..ad67522d06 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticbeanstalk-environment.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CNAMEPrefix", + "/properties/EnvironmentName", + "/properties/ApplicationName", + "/properties/SolutionStackName" + ], + "definitions": { + "OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Environment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EndpointURL": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OperationsRole": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/OptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/EndpointURL" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::Environment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-listenerrule.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-listenerrule.json new file mode 100644 index 0000000000..0afd31c630 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-listenerrule.json @@ -0,0 +1,386 @@ +{ + "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": { + "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": { + "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" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "required": [ + "TokenEndpoint", + "Issuer", + "ClientSecret", + "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" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerRule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": true + }, + "Conditions": { + "items": { + "$ref": "#/definitions/RuleCondition" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "ListenerArn": { + "type": "string" + }, + "Priority": { + "maximum": 50000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ListenerArn", + "Actions", + "Priority", + "Conditions" + ], + "typeName": "AWS::ElasticLoadBalancingV2::ListenerRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..48793c4fbd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,184 @@ +{ + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::LoadBalancer", + "oneOf": [ + { + "properties": { + "Subnets": false + }, + "required": [ + "SubnetMappings" + ], + "type": "object" + }, + { + "properties": { + "SubnetMappings": false + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['SubnetMappings', 'Subnets']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/CanonicalHostedZoneID", + "/properties/Id", + "/properties/LoadBalancerFullName", + "/properties/DNSName" + ], + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-emr-securityconfiguration.json new file mode 100644 index 0000000000..1f55dfd600 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-emr-securityconfiguration.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/SecurityConfiguration" + ], + "description": "Resource Type definition for AWS::EMR::SecurityConfiguration", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecurityConfiguration" + ], + "typeName": "AWS::EMR::SecurityConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-alias.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-alias.json new file mode 100644 index 0000000000..a786ab0606 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-alias.json @@ -0,0 +1,49 @@ +{ + "additionalProperties": false, + "definitions": { + "RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Alias", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/RoutingStrategy" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RoutingStrategy", + "Name" + ], + "typeName": "AWS::GameLift::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-build.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-build.json new file mode 100644 index 0000000000..0d69550edf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-build.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StorageLocation", + "/properties/OperatingSystem" + ], + "definitions": { + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Build", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OperatingSystem": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/S3Location" + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::GameLift::Build" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-fleet.json new file mode 100644 index 0000000000..75d4906f55 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-gamelift-fleet.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PeerVpcAwsAccountId", + "/properties/BuildId", + "/properties/EC2InstanceType", + "/properties/ServerLaunchParameters", + "/properties/CertificateConfiguration", + "/properties/LogPaths", + "/properties/ServerLaunchPath", + "/properties/FleetType", + "/properties/ScriptId", + "/properties/PeerVpcId", + "/properties/InstanceRoleARN" + ], + "definitions": { + "CertificateConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateType": { + "type": "string" + } + }, + "required": [ + "CertificateType" + ], + "type": "object" + }, + "IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "IpRange", + "FromPort", + "ToPort", + "Protocol" + ], + "type": "object" + }, + "ResourceCreationLimitPolicy": { + "additionalProperties": false, + "properties": { + "NewGameSessionsPerCreator": { + "type": "integer" + }, + "PolicyPeriodInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "RuntimeConfiguration": { + "additionalProperties": false, + "properties": { + "GameSessionActivationTimeoutSeconds": { + "type": "integer" + }, + "MaxConcurrentGameSessionActivations": { + "type": "integer" + }, + "ServerProcesses": { + "items": { + "$ref": "#/definitions/ServerProcess" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ServerProcess": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutions": { + "type": "integer" + }, + "LaunchPath": { + "type": "string" + }, + "Parameters": { + "type": "string" + } + }, + "required": [ + "ConcurrentExecutions", + "LaunchPath" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Fleet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BuildId": { + "type": "string" + }, + "CertificateConfiguration": { + "$ref": "#/definitions/CertificateConfiguration" + }, + "Description": { + "type": "string" + }, + "DesiredEC2Instances": { + "type": "integer" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/IpPermission" + }, + "type": "array", + "uniqueItems": true + }, + "EC2InstanceType": { + "cfnRegionSchema": "aws_gamelift_fleet/ec2instancetype_enum", + "type": "string" + }, + "FleetType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceRoleARN": { + "type": "string" + }, + "LogPaths": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MaxSize": { + "type": "integer" + }, + "MetricGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MinSize": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "NewGameSessionProtectionPolicy": { + "type": "string" + }, + "PeerVpcAwsAccountId": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "ResourceCreationLimitPolicy": { + "$ref": "#/definitions/ResourceCreationLimitPolicy" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/RuntimeConfiguration" + }, + "ScriptId": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EC2InstanceType", + "Name" + ], + "typeName": "AWS::GameLift::Fleet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-datacatalogencryptionsettings.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-datacatalogencryptionsettings.json new file mode 100644 index 0000000000..94664d2615 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-glue-datacatalogencryptionsettings.json @@ -0,0 +1,67 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "ConnectionPasswordEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "ReturnConnectionPasswordEncrypted": { + "type": "boolean" + } + }, + "type": "object" + }, + "DataCatalogEncryptionSettings": { + "additionalProperties": false, + "properties": { + "ConnectionPasswordEncryption": { + "$ref": "#/definitions/ConnectionPasswordEncryption" + }, + "EncryptionAtRest": { + "$ref": "#/definitions/EncryptionAtRest" + } + }, + "type": "object" + }, + "EncryptionAtRest": { + "additionalProperties": false, + "properties": { + "CatalogEncryptionMode": { + "type": "string" + }, + "SseAwsKmsKeyId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Glue::DataCatalogEncryptionSettings", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DataCatalogEncryptionSettings": { + "$ref": "#/definitions/DataCatalogEncryptionSettings" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DataCatalogEncryptionSettings", + "CatalogId" + ], + "typeName": "AWS::Glue::DataCatalogEncryptionSettings" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-guardduty-master.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-guardduty-master.json new file mode 100644 index 0000000000..6a841839da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-guardduty-master.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InvitationId", + "/properties/DetectorId", + "/properties/MasterId" + ], + "description": "Resource Type definition for AWS::GuardDuty::Master", + "primaryIdentifier": [ + "/properties/MasterId" + ], + "properties": { + "DetectorId": { + "type": "string" + }, + "InvitationId": { + "type": "string" + }, + "MasterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/MasterId" + ], + "required": [ + "DetectorId", + "MasterId" + ], + "typeName": "AWS::GuardDuty::Master" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iam-accesskey.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iam-accesskey.json new file mode 100644 index 0000000000..eaf023abb9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iam-accesskey.json @@ -0,0 +1,40 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Serial", + "/properties/UserName" + ], + "description": "Resource Type definition for AWS::IAM::AccessKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretAccessKey": { + "type": "string" + }, + "Serial": { + "type": "integer" + }, + "Status": { + "enum": [ + "Active", + "Inactive" + ], + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecretAccessKey" + ], + "required": [ + "UserName" + ], + "typeName": "AWS::IAM::AccessKey" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-certificate.json new file mode 100644 index 0000000000..1fdf158dd4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-certificate.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateSigningRequest" + ], + "description": "Resource Type definition for AWS::IoT::Certificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "CertificateSigningRequest": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Status", + "CertificateSigningRequest" + ], + "typeName": "AWS::IoT::Certificate" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json new file mode 100644 index 0000000000..36682f62a0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyDocument", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::Policy", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "PolicyDocument" + ], + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policyprincipalattachment.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policyprincipalattachment.json new file mode 100644 index 0000000000..1e5d6a7348 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policyprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyName", + "Principal" + ], + "typeName": "AWS::IoT::PolicyPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-thing.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-thing.json new file mode 100644 index 0000000000..8bcc352f41 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-thing.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ThingName" + ], + "definitions": { + "AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IoT::Thing", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AttributePayload" + }, + "Id": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::IoT::Thing" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-thingprincipalattachment.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-thingprincipalattachment.json new file mode 100644 index 0000000000..e527a23e87 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-thingprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/ThingName" + ], + "description": "Resource Type definition for AWS::IoT::ThingPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ThingName", + "Principal" + ], + "typeName": "AWS::IoT::ThingPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-topicrule.json new file mode 100644 index 0000000000..406a4e7eae --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-topicrule.json @@ -0,0 +1,618 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleName" + ], + "definitions": { + "Action": { + "additionalProperties": false, + "properties": { + "CloudwatchAlarm": { + "$ref": "#/definitions/CloudwatchAlarmAction" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/CloudwatchMetricAction" + }, + "DynamoDB": { + "$ref": "#/definitions/DynamoDBAction" + }, + "DynamoDBv2": { + "$ref": "#/definitions/DynamoDBv2Action" + }, + "Elasticsearch": { + "$ref": "#/definitions/ElasticsearchAction" + }, + "Firehose": { + "$ref": "#/definitions/FirehoseAction" + }, + "Http": { + "$ref": "#/definitions/HttpAction" + }, + "IotAnalytics": { + "$ref": "#/definitions/IotAnalyticsAction" + }, + "IotEvents": { + "$ref": "#/definitions/IotEventsAction" + }, + "IotSiteWise": { + "$ref": "#/definitions/IotSiteWiseAction" + }, + "Kinesis": { + "$ref": "#/definitions/KinesisAction" + }, + "Lambda": { + "$ref": "#/definitions/LambdaAction" + }, + "Republish": { + "$ref": "#/definitions/RepublishAction" + }, + "S3": { + "$ref": "#/definitions/S3Action" + }, + "Sns": { + "$ref": "#/definitions/SnsAction" + }, + "Sqs": { + "$ref": "#/definitions/SqsAction" + }, + "StepFunctions": { + "$ref": "#/definitions/StepFunctionsAction" + } + }, + "type": "object" + }, + "AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AssetPropertyVariant" + } + }, + "required": [ + "Value", + "Timestamp" + ], + "type": "object" + }, + "AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateReason": { + "type": "string" + }, + "StateValue": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "StateReason", + "StateValue", + "RoleArn" + ], + "type": "object" + }, + "CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricTimestamp": { + "type": "string" + }, + "MetricUnit": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricValue", + "MetricNamespace", + "MetricUnit", + "RoleArn" + ], + "type": "object" + }, + "DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName", + "HashKeyField", + "HashKeyValue", + "RoleArn" + ], + "type": "object" + }, + "DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/PutItemInput" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type", + "Endpoint", + "Index", + "Id", + "RoleArn" + ], + "type": "object" + }, + "FirehoseAction": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "HttpAction": { + "additionalProperties": false, + "properties": { + "Auth": { + "$ref": "#/definitions/HttpAuthorization" + }, + "ConfirmationUrl": { + "type": "string" + }, + "Headers": { + "items": { + "$ref": "#/definitions/HttpActionHeader" + }, + "type": "array", + "uniqueItems": true + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpActionHeader": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "HttpAuthorization": { + "additionalProperties": false, + "properties": { + "Sigv4": { + "$ref": "#/definitions/SigV4Authorization" + } + }, + "type": "object" + }, + "IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "IotEventsAction": { + "additionalProperties": false, + "properties": { + "InputName": { + "type": "string" + }, + "MessageId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "InputName", + "RoleArn" + ], + "type": "object" + }, + "IotSiteWiseAction": { + "additionalProperties": false, + "properties": { + "PutAssetPropertyValueEntries": { + "items": { + "$ref": "#/definitions/PutAssetPropertyValueEntry" + }, + "type": "array", + "uniqueItems": true + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "PutAssetPropertyValueEntries", + "RoleArn" + ], + "type": "object" + }, + "KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "StreamName", + "RoleArn" + ], + "type": "object" + }, + "LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + } + }, + "type": "object" + }, + "PutAssetPropertyValueEntry": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValues": { + "items": { + "$ref": "#/definitions/AssetPropertyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "PropertyValues" + ], + "type": "object" + }, + "PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "RepublishAction": { + "additionalProperties": false, + "properties": { + "Qos": { + "type": "integer" + }, + "RoleArn": { + "type": "string" + }, + "Topic": { + "type": "string" + } + }, + "required": [ + "Topic", + "RoleArn" + ], + "type": "object" + }, + "S3Action": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "SigV4Authorization": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "SigningRegion": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "SigningRegion", + "RoleArn" + ], + "type": "object" + }, + "SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "TargetArn", + "RoleArn" + ], + "type": "object" + }, + "SqsAction": { + "additionalProperties": false, + "properties": { + "QueueUrl": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "RoleArn", + "QueueUrl" + ], + "type": "object" + }, + "StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateMachineName": { + "type": "string" + } + }, + "required": [ + "StateMachineName", + "RoleArn" + ], + "type": "object" + }, + "TopicRulePayload": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": true + }, + "AwsIotSqlVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/Action" + }, + "RuleDisabled": { + "type": "boolean" + }, + "Sql": { + "type": "string" + } + }, + "required": [ + "RuleDisabled", + "Actions", + "Sql" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IoT::TopicRule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RuleName": { + "type": "string" + }, + "TopicRulePayload": { + "$ref": "#/definitions/TopicRulePayload" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "TopicRulePayload" + ], + "typeName": "AWS::IoT::TopicRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-kinesis-streamconsumer.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-kinesis-streamconsumer.json new file mode 100644 index 0000000000..3507f8a448 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-kinesis-streamconsumer.json @@ -0,0 +1,42 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StreamARN", + "/properties/ConsumerName" + ], + "description": "Resource Type definition for AWS::Kinesis::StreamConsumer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ConsumerARN": { + "type": "string" + }, + "ConsumerCreationTimestamp": { + "type": "string" + }, + "ConsumerName": { + "type": "string" + }, + "ConsumerStatus": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StreamARN": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ConsumerStatus", + "/properties/Id", + "/properties/ConsumerARN", + "/properties/ConsumerCreationTimestamp" + ], + "required": [ + "ConsumerName", + "StreamARN" + ], + "typeName": "AWS::Kinesis::StreamConsumer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-alias.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-alias.json new file mode 100644 index 0000000000..6a73e643b9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-kms-alias.json @@ -0,0 +1,59 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AliasName" + ], + "description": "The AWS::KMS::Alias resource specifies a display name for an AWS KMS key in AWS Key Management Service (AWS KMS). You can use an alias to identify an AWS KMS key in cryptographic operations.", + "handlers": { + "create": { + "permissions": [ + "kms:CreateAlias" + ] + }, + "delete": { + "permissions": [ + "kms:DeleteAlias" + ] + }, + "list": { + "permissions": [ + "kms:ListAliases" + ] + }, + "read": { + "permissions": [ + "kms:ListAliases" + ] + }, + "update": { + "permissions": [ + "kms:UpdateAlias" + ] + } + }, + "primaryIdentifier": [ + "/properties/AliasName" + ], + "properties": { + "AliasName": { + "description": "Specifies the alias name. This value must begin with alias/ followed by a name, such as alias/ExampleAlias. The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved for AWS managed keys.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(alias/)[a-zA-Z0-9:/_-]+$", + "type": "string" + }, + "TargetKeyId": { + "description": "Identifies the AWS KMS key to which the alias refers. Specify the key ID or the Amazon Resource Name (ARN) of the AWS KMS key. You cannot specify another alias. For help finding the key ID and ARN, see Finding the Key ID and ARN in the AWS Key Management Service Developer Guide.", + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AliasName", + "TargetKeyId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "taggable": false, + "typeName": "AWS::KMS::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-lambda-alias.json new file mode 100644 index 0000000000..9c2fbb105b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-lambda-alias.json @@ -0,0 +1,22 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::Lambda::Alias", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BarName": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "BarName" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-lambda-permission.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-lambda-permission.json new file mode 100644 index 0000000000..f3d98e2735 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-lambda-permission.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceAccount", + "/properties/FunctionUrlAuthType", + "/properties/SourceArn", + "/properties/Principal", + "/properties/Action", + "/properties/FunctionName", + "/properties/EventSourceToken", + "/properties/PrincipalOrgID" + ], + "description": "Resource Type definition for AWS::Lambda::Permission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Action": { + "type": "string" + }, + "EventSourceToken": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionUrlAuthType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "PrincipalOrgID": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "Action", + "Principal" + ], + "typeName": "AWS::Lambda::Permission" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-instance.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-instance.json new file mode 100644 index 0000000000..bb049a1011 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-instance.json @@ -0,0 +1,299 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tenancy", + "/properties/VirtualizationType", + "/properties/TimeBasedAutoScaling", + "/properties/RootDeviceType", + "/properties/AutoScalingType", + "/properties/StackId", + "/properties/AvailabilityZone", + "/properties/SubnetId", + "/properties/BlockDeviceMappings", + "/properties/EbsOptimized" + ], + "definitions": { + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "TimeBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "Friday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Monday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Saturday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Sunday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Thursday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Tuesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Wednesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Instance", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "AmiId": { + "type": "string" + }, + "Architecture": { + "type": "string" + }, + "AutoScalingType": { + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticIps": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Hostname": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "LayerIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Os": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateIp": { + "type": "string" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RootDeviceType": { + "type": "string" + }, + "SshKeyName": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tenancy": { + "type": "string" + }, + "TimeBasedAutoScaling": { + "$ref": "#/definitions/TimeBasedAutoScaling" + }, + "VirtualizationType": { + "type": "string" + }, + "Volumes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/PublicIp", + "/properties/Id", + "/properties/PublicDnsName", + "/properties/PrivateDnsName", + "/properties/PrivateIp" + ], + "required": [ + "LayerIds", + "InstanceType", + "StackId" + ], + "typeName": "AWS::OpsWorks::Instance" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-layer.json new file mode 100644 index 0000000000..0c7549d975 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-layer.json @@ -0,0 +1,262 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StackId", + "/properties/Type" + ], + "definitions": { + "AutoScalingThresholds": { + "additionalProperties": false, + "properties": { + "CpuThreshold": { + "type": "number" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "InstanceCount": { + "type": "integer" + }, + "LoadThreshold": { + "type": "number" + }, + "MemoryThreshold": { + "type": "number" + }, + "ThresholdsWaitTime": { + "type": "integer" + } + }, + "type": "object" + }, + "LifecycleEventConfiguration": { + "additionalProperties": false, + "properties": { + "ShutdownEventConfiguration": { + "$ref": "#/definitions/ShutdownEventConfiguration" + } + }, + "type": "object" + }, + "LoadBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "DownScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + }, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + } + }, + "type": "object" + }, + "Recipes": { + "additionalProperties": false, + "properties": { + "Configure": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Deploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Setup": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Shutdown": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Undeploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ShutdownEventConfiguration": { + "additionalProperties": false, + "properties": { + "DelayUntilElbConnectionsDrained": { + "type": "boolean" + }, + "ExecutionTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "MountPoint": { + "type": "string" + }, + "NumberOfDisks": { + "type": "integer" + }, + "RaidLevel": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Layer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomInstanceProfileArn": { + "type": "string" + }, + "CustomJson": { + "type": "object" + }, + "CustomRecipes": { + "$ref": "#/definitions/Recipes" + }, + "CustomSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "$ref": "#/definitions/LifecycleEventConfiguration" + }, + "LoadBasedAutoScaling": { + "$ref": "#/definitions/LoadBasedAutoScaling" + }, + "Name": { + "type": "string" + }, + "Packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Shortname": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/VolumeConfiguration" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EnableAutoHealing", + "Type", + "AutoAssignElasticIps", + "Shortname", + "AutoAssignPublicIps", + "Name", + "StackId" + ], + "typeName": "AWS::OpsWorks::Layer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-stack.json new file mode 100644 index 0000000000..f3862f3e29 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-stack.json @@ -0,0 +1,230 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CloneAppIds", + "/properties/ClonePermissions", + "/properties/ServiceRoleArn", + "/properties/VpcId", + "/properties/SourceStackId" + ], + "definitions": { + "ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "RdsDbInstanceArn", + "DbUser" + ], + "type": "object" + }, + "Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "VpcId": [ + "DefaultSubnetId" + ] + }, + "description": "Resource Type definition for AWS::OpsWorks::Stack", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/ElasticIp" + }, + "type": "array", + "uniqueItems": true + }, + "HostnameTheme": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/RdsDbInstance" + }, + "type": "array", + "uniqueItems": true + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DefaultInstanceProfileArn", + "ServiceRoleArn", + "Name" + ], + "typeName": "AWS::OpsWorks::Stack" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-pipes-pipe.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-pipes-pipe.json new file mode 100644 index 0000000000..0a5eeca495 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-pipes-pipe.json @@ -0,0 +1,1597 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Source", + "/properties/SourceParameters/DynamoDBStreamParameters/StartingPosition", + "/properties/SourceParameters/KinesisStreamParameters/StartingPosition", + "/properties/SourceParameters/KinesisStreamParameters/StartingPositionTimestamp", + "/properties/SourceParameters/ActiveMQBrokerParameters/QueueName", + "/properties/SourceParameters/RabbitMQBrokerParameters/QueueName", + "/properties/SourceParameters/RabbitMQBrokerParameters/VirtualHost", + "/properties/SourceParameters/ManagedStreamingKafkaParameters/TopicName", + "/properties/SourceParameters/ManagedStreamingKafkaParameters/StartingPosition", + "/properties/SourceParameters/ManagedStreamingKafkaParameters/ConsumerGroupID", + "/properties/SourceParameters/SelfManagedKafkaParameters/TopicName", + "/properties/SourceParameters/SelfManagedKafkaParameters/StartingPosition", + "/properties/SourceParameters/SelfManagedKafkaParameters/AdditionalBootstrapServers", + "/properties/SourceParameters/SelfManagedKafkaParameters/ConsumerGroupID" + ], + "definitions": { + "AssignPublicIp": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "$ref": "#/definitions/AssignPublicIp" + }, + "SecurityGroups": { + "items": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^sg-[0-9a-zA-Z]*|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Subnets": { + "items": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^subnet-[0-9a-z]*|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + }, + "maxItems": 16, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "BatchArrayProperties": { + "additionalProperties": false, + "properties": { + "Size": { + "default": 0, + "maximum": 10000, + "minimum": 2, + "type": "integer" + } + }, + "type": "object" + }, + "BatchContainerOverrides": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/BatchEnvironmentVariable" + }, + "type": "array" + }, + "InstanceType": { + "type": "string" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/BatchResourceRequirement" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchEnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "BatchJobDependency": { + "additionalProperties": false, + "properties": { + "JobId": { + "type": "string" + }, + "Type": { + "$ref": "#/definitions/BatchJobDependencyType" + } + }, + "type": "object" + }, + "BatchJobDependencyType": { + "enum": [ + "N_TO_N", + "SEQUENTIAL" + ], + "type": "string" + }, + "BatchParametersMap": { + "additionalProperties": false, + "patternProperties": { + ".+": { + "type": "string" + } + }, + "type": "object" + }, + "BatchResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/BatchResourceRequirementType" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "BatchResourceRequirementType": { + "enum": [ + "GPU", + "MEMORY", + "VCPU" + ], + "type": "string" + }, + "BatchRetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "default": 0, + "maximum": 10, + "minimum": 1, + "type": "integer" + } + }, + "type": "object" + }, + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "default": 0, + "maximum": 100000, + "minimum": 0, + "type": "integer" + }, + "CapacityProvider": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "Weight": { + "default": 0, + "maximum": 1000, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "CapacityProvider" + ], + "type": "object" + }, + "DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "maxLength": 1600, + "minLength": 1, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + "type": "string" + } + }, + "type": "object" + }, + "DynamoDBStreamStartPosition": { + "enum": [ + "TRIM_HORIZON", + "LATEST" + ], + "type": "string" + }, + "EcsContainerOverride": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cpu": { + "type": "integer" + }, + "Environment": { + "items": { + "$ref": "#/definitions/EcsEnvironmentVariable" + }, + "type": "array" + }, + "EnvironmentFiles": { + "items": { + "$ref": "#/definitions/EcsEnvironmentFile" + }, + "type": "array" + }, + "Memory": { + "type": "integer" + }, + "MemoryReservation": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/EcsResourceRequirement" + }, + "type": "array" + } + }, + "type": "object" + }, + "EcsEnvironmentFile": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/EcsEnvironmentFileType" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "EcsEnvironmentFileType": { + "enum": [ + "s3" + ], + "type": "string" + }, + "EcsEnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "EcsEphemeralStorage": { + "additionalProperties": false, + "properties": { + "SizeInGiB": { + "default": 0, + "maximum": 200, + "minimum": 21, + "type": "integer" + } + }, + "required": [ + "SizeInGiB" + ], + "type": "object" + }, + "EcsInferenceAcceleratorOverride": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "DeviceType": { + "type": "string" + } + }, + "type": "object" + }, + "EcsResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/EcsResourceRequirementType" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "EcsResourceRequirementType": { + "enum": [ + "GPU", + "InferenceAccelerator" + ], + "type": "string" + }, + "EcsTaskOverride": { + "additionalProperties": false, + "properties": { + "ContainerOverrides": { + "items": { + "$ref": "#/definitions/EcsContainerOverride" + }, + "type": "array" + }, + "Cpu": { + "type": "string" + }, + "EphemeralStorage": { + "$ref": "#/definitions/EcsEphemeralStorage" + }, + "ExecutionRoleArn": { + "maxLength": 1600, + "minLength": 1, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + }, + "InferenceAcceleratorOverrides": { + "items": { + "$ref": "#/definitions/EcsInferenceAcceleratorOverride" + }, + "type": "array" + }, + "Memory": { + "type": "string" + }, + "TaskRoleArn": { + "maxLength": 1600, + "minLength": 1, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + } + }, + "type": "object" + }, + "Filter": { + "additionalProperties": false, + "properties": { + "Pattern": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "FilterCriteria": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/Filter" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "HeaderParametersMap": { + "additionalProperties": false, + "patternProperties": { + "^[!#$%&'*+-.^_`|~0-9a-zA-Z]+|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$": { + "maxLength": 512, + "minLength": 0, + "pattern": "^[ \\t]*[\\x20-\\x7E]+([ \\t]+[\\x20-\\x7E]+)*[ \\t]*|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + } + }, + "type": "object" + }, + "KinesisStreamStartPosition": { + "enum": [ + "TRIM_HORIZON", + "LATEST", + "AT_TIMESTAMP" + ], + "type": "string" + }, + "LaunchType": { + "enum": [ + "EC2", + "FARGATE", + "EXTERNAL" + ], + "type": "string" + }, + "MQBrokerAccessCredentials": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "BasicAuth": { + "description": "Optional SecretManager ARN which stores the database credentials", + "maxLength": 1600, + "minLength": 1, + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "type": "string" + } + }, + "required": [ + "BasicAuth" + ], + "title": "BasicAuth", + "type": "object" + } + ] + }, + "MSKAccessCredentials": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "SaslScram512Auth": { + "description": "Optional SecretManager ARN which stores the database credentials", + "maxLength": 1600, + "minLength": 1, + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "type": "string" + } + }, + "required": [ + "SaslScram512Auth" + ], + "title": "SaslScram512Auth", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "ClientCertificateTlsAuth": { + "description": "Optional SecretManager ARN which stores the database credentials", + "maxLength": 1600, + "minLength": 1, + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "type": "string" + } + }, + "required": [ + "ClientCertificateTlsAuth" + ], + "title": "ClientCertificateTlsAuth", + "type": "object" + } + ] + }, + "MSKStartPosition": { + "enum": [ + "TRIM_HORIZON", + "LATEST" + ], + "type": "string" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AwsVpcConfiguration" + } + }, + "type": "object" + }, + "OnPartialBatchItemFailureStreams": { + "enum": [ + "AUTOMATIC_BISECT" + ], + "type": "string" + }, + "PipeEnrichmentHttpParameters": { + "additionalProperties": false, + "properties": { + "HeaderParameters": { + "$ref": "#/definitions/HeaderParametersMap" + }, + "PathParameterValues": { + "items": { + "pattern": "^(?!\\s*$).+|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + }, + "type": "array" + }, + "QueryStringParameters": { + "$ref": "#/definitions/QueryStringParametersMap" + } + }, + "type": "object" + }, + "PipeEnrichmentParameters": { + "additionalProperties": false, + "properties": { + "HttpParameters": { + "$ref": "#/definitions/PipeEnrichmentHttpParameters" + }, + "InputTemplate": { + "maxLength": 8192, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "PipeSourceActiveMQBrokerParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "Credentials": { + "$ref": "#/definitions/MQBrokerAccessCredentials" + }, + "MaximumBatchingWindowInSeconds": { + "maximum": 300, + "minimum": 0, + "type": "integer" + }, + "QueueName": { + "maxLength": 1000, + "minLength": 1, + "pattern": "^[\\s\\S]*$", + "type": "string" + } + }, + "required": [ + "Credentials", + "QueueName" + ], + "type": "object" + }, + "PipeSourceDynamoDBStreamParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/DeadLetterConfig" + }, + "MaximumBatchingWindowInSeconds": { + "maximum": 300, + "minimum": 0, + "type": "integer" + }, + "MaximumRecordAgeInSeconds": { + "maximum": 604800, + "minimum": -1, + "type": "integer" + }, + "MaximumRetryAttempts": { + "maximum": 10000, + "minimum": -1, + "type": "integer" + }, + "OnPartialBatchItemFailure": { + "$ref": "#/definitions/OnPartialBatchItemFailureStreams" + }, + "ParallelizationFactor": { + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "StartingPosition": { + "$ref": "#/definitions/DynamoDBStreamStartPosition" + } + }, + "required": [ + "StartingPosition" + ], + "type": "object" + }, + "PipeSourceKinesisStreamParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/DeadLetterConfig" + }, + "MaximumBatchingWindowInSeconds": { + "maximum": 300, + "minimum": 0, + "type": "integer" + }, + "MaximumRecordAgeInSeconds": { + "maximum": 604800, + "minimum": -1, + "type": "integer" + }, + "MaximumRetryAttempts": { + "maximum": 10000, + "minimum": -1, + "type": "integer" + }, + "OnPartialBatchItemFailure": { + "$ref": "#/definitions/OnPartialBatchItemFailureStreams" + }, + "ParallelizationFactor": { + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "StartingPosition": { + "$ref": "#/definitions/KinesisStreamStartPosition" + }, + "StartingPositionTimestamp": { + "format": "date-time", + "type": "string" + } + }, + "required": [ + "StartingPosition" + ], + "type": "object" + }, + "PipeSourceManagedStreamingKafkaParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "ConsumerGroupID": { + "maxLength": 200, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-\\/*:_+=.@-]*$", + "type": "string" + }, + "Credentials": { + "$ref": "#/definitions/MSKAccessCredentials" + }, + "MaximumBatchingWindowInSeconds": { + "maximum": 300, + "minimum": 0, + "type": "integer" + }, + "StartingPosition": { + "$ref": "#/definitions/MSKStartPosition" + }, + "TopicName": { + "maxLength": 249, + "minLength": 1, + "pattern": "^[^.]([a-zA-Z0-9\\-_.]+)$", + "type": "string" + } + }, + "required": [ + "TopicName" + ], + "type": "object" + }, + "PipeSourceParameters": { + "additionalProperties": false, + "properties": { + "ActiveMQBrokerParameters": { + "$ref": "#/definitions/PipeSourceActiveMQBrokerParameters" + }, + "DynamoDBStreamParameters": { + "$ref": "#/definitions/PipeSourceDynamoDBStreamParameters" + }, + "FilterCriteria": { + "$ref": "#/definitions/FilterCriteria" + }, + "KinesisStreamParameters": { + "$ref": "#/definitions/PipeSourceKinesisStreamParameters" + }, + "ManagedStreamingKafkaParameters": { + "$ref": "#/definitions/PipeSourceManagedStreamingKafkaParameters" + }, + "RabbitMQBrokerParameters": { + "$ref": "#/definitions/PipeSourceRabbitMQBrokerParameters" + }, + "SelfManagedKafkaParameters": { + "$ref": "#/definitions/PipeSourceSelfManagedKafkaParameters" + }, + "SqsQueueParameters": { + "$ref": "#/definitions/PipeSourceSqsQueueParameters" + } + }, + "type": "object" + }, + "PipeSourceRabbitMQBrokerParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "Credentials": { + "$ref": "#/definitions/MQBrokerAccessCredentials" + }, + "MaximumBatchingWindowInSeconds": { + "maximum": 300, + "minimum": 0, + "type": "integer" + }, + "QueueName": { + "maxLength": 1000, + "minLength": 1, + "pattern": "^[\\s\\S]*$", + "type": "string" + }, + "VirtualHost": { + "maxLength": 200, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-\\/*:_+=.@-]*$", + "type": "string" + } + }, + "required": [ + "Credentials", + "QueueName" + ], + "type": "object" + }, + "PipeSourceSelfManagedKafkaParameters": { + "additionalProperties": false, + "properties": { + "AdditionalBootstrapServers": { + "items": { + "maxLength": 300, + "minLength": 1, + "pattern": "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}$", + "type": "string" + }, + "maxItems": 2, + "minItems": 0, + "type": "array" + }, + "BatchSize": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "ConsumerGroupID": { + "maxLength": 200, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-\\/*:_+=.@-]*$", + "type": "string" + }, + "Credentials": { + "$ref": "#/definitions/SelfManagedKafkaAccessConfigurationCredentials" + }, + "MaximumBatchingWindowInSeconds": { + "maximum": 300, + "minimum": 0, + "type": "integer" + }, + "ServerRootCaCertificate": { + "description": "Optional SecretManager ARN which stores the database credentials", + "maxLength": 1600, + "minLength": 1, + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "type": "string" + }, + "StartingPosition": { + "$ref": "#/definitions/SelfManagedKafkaStartPosition" + }, + "TopicName": { + "maxLength": 249, + "minLength": 1, + "pattern": "^[^.]([a-zA-Z0-9\\-_.]+)$", + "type": "string" + }, + "Vpc": { + "$ref": "#/definitions/SelfManagedKafkaAccessConfigurationVpc" + } + }, + "required": [ + "TopicName" + ], + "type": "object" + }, + "PipeSourceSqsQueueParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "MaximumBatchingWindowInSeconds": { + "maximum": 300, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "PipeState": { + "enum": [ + "RUNNING", + "STOPPED", + "CREATING", + "UPDATING", + "DELETING", + "STARTING", + "STOPPING", + "CREATE_FAILED", + "UPDATE_FAILED", + "START_FAILED", + "STOP_FAILED" + ], + "type": "string" + }, + "PipeTargetBatchJobParameters": { + "additionalProperties": false, + "properties": { + "ArrayProperties": { + "$ref": "#/definitions/BatchArrayProperties" + }, + "ContainerOverrides": { + "$ref": "#/definitions/BatchContainerOverrides" + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/BatchJobDependency" + }, + "maxItems": 20, + "minItems": 0, + "type": "array" + }, + "JobDefinition": { + "type": "string" + }, + "JobName": { + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/BatchParametersMap" + }, + "RetryStrategy": { + "$ref": "#/definitions/BatchRetryStrategy" + } + }, + "required": [ + "JobDefinition", + "JobName" + ], + "type": "object" + }, + "PipeTargetCloudWatchLogsParameters": { + "additionalProperties": false, + "properties": { + "LogStreamName": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Timestamp": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*$", + "type": "string" + } + }, + "type": "object" + }, + "PipeTargetEcsTaskParameters": { + "additionalProperties": false, + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "maxItems": 6, + "minItems": 0, + "type": "array" + }, + "EnableECSManagedTags": { + "default": false, + "type": "boolean" + }, + "EnableExecuteCommand": { + "default": false, + "type": "boolean" + }, + "Group": { + "type": "string" + }, + "LaunchType": { + "$ref": "#/definitions/LaunchType" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "Overrides": { + "$ref": "#/definitions/EcsTaskOverride" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/PlacementConstraint" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "PlacementStrategy": { + "items": { + "$ref": "#/definitions/PlacementStrategy" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "PlatformVersion": { + "type": "string" + }, + "PropagateTags": { + "$ref": "#/definitions/PropagateTags" + }, + "ReferenceId": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskCount": { + "minimum": 1, + "type": "integer" + }, + "TaskDefinitionArn": { + "maxLength": 1600, + "minLength": 1, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "PipeTargetEventBridgeEventBusParameters": { + "additionalProperties": false, + "properties": { + "DetailType": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "EndpointId": { + "maxLength": 50, + "minLength": 1, + "pattern": "^[A-Za-z0-9\\-]+[\\.][A-Za-z0-9\\-]+$", + "type": "string" + }, + "Resources": { + "items": { + "maxLength": 1600, + "minLength": 1, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Source": { + "maxLength": 256, + "minLength": 1, + "pattern": "(?=[/\\.\\-_A-Za-z0-9]+)((?!aws\\.).*)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)", + "type": "string" + }, + "Time": { + "maxLength": 256, + "minLength": 1, + "pattern": "^\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*$", + "type": "string" + } + }, + "type": "object" + }, + "PipeTargetHttpParameters": { + "additionalProperties": false, + "properties": { + "HeaderParameters": { + "$ref": "#/definitions/HeaderParametersMap" + }, + "PathParameterValues": { + "items": { + "pattern": "^(?!\\s*$).+|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + }, + "type": "array" + }, + "QueryStringParameters": { + "$ref": "#/definitions/QueryStringParametersMap" + } + }, + "type": "object" + }, + "PipeTargetInvocationType": { + "enum": [ + "REQUEST_RESPONSE", + "FIRE_AND_FORGET" + ], + "type": "string" + }, + "PipeTargetKinesisStreamParameters": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "PartitionKey" + ], + "type": "object" + }, + "PipeTargetLambdaFunctionParameters": { + "additionalProperties": false, + "properties": { + "InvocationType": { + "$ref": "#/definitions/PipeTargetInvocationType" + } + }, + "type": "object" + }, + "PipeTargetParameters": { + "additionalProperties": false, + "properties": { + "BatchJobParameters": { + "$ref": "#/definitions/PipeTargetBatchJobParameters" + }, + "CloudWatchLogsParameters": { + "$ref": "#/definitions/PipeTargetCloudWatchLogsParameters" + }, + "EcsTaskParameters": { + "$ref": "#/definitions/PipeTargetEcsTaskParameters" + }, + "EventBridgeEventBusParameters": { + "$ref": "#/definitions/PipeTargetEventBridgeEventBusParameters" + }, + "HttpParameters": { + "$ref": "#/definitions/PipeTargetHttpParameters" + }, + "InputTemplate": { + "maxLength": 8192, + "minLength": 0, + "type": "string" + }, + "KinesisStreamParameters": { + "$ref": "#/definitions/PipeTargetKinesisStreamParameters" + }, + "LambdaFunctionParameters": { + "$ref": "#/definitions/PipeTargetLambdaFunctionParameters" + }, + "RedshiftDataParameters": { + "$ref": "#/definitions/PipeTargetRedshiftDataParameters" + }, + "SageMakerPipelineParameters": { + "$ref": "#/definitions/PipeTargetSageMakerPipelineParameters" + }, + "SqsQueueParameters": { + "$ref": "#/definitions/PipeTargetSqsQueueParameters" + }, + "StepFunctionStateMachineParameters": { + "$ref": "#/definitions/PipeTargetStateMachineParameters" + } + }, + "type": "object" + }, + "PipeTargetRedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "description": "Redshift Database", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "DbUser": { + "description": "Database user name", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SecretManagerArn": { + "description": "Optional SecretManager ARN which stores the database credentials", + "maxLength": 1600, + "minLength": 1, + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + }, + "Sqls": { + "description": "A list of SQLs.", + "items": { + "description": "A single Redshift SQL", + "maxLength": 100000, + "minLength": 1, + "type": "string" + }, + "maxItems": 40, + "minItems": 1, + "type": "array" + }, + "StatementName": { + "description": "A name for Redshift DataAPI statement which can be used as filter of ListStatement.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "WithEvent": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "Database", + "Sqls" + ], + "type": "object" + }, + "PipeTargetSageMakerPipelineParameters": { + "additionalProperties": false, + "properties": { + "PipelineParameterList": { + "items": { + "$ref": "#/definitions/SageMakerPipelineParameter" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "PipeTargetSqsQueueParameters": { + "additionalProperties": false, + "properties": { + "MessageDeduplicationId": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "MessageGroupId": { + "maxLength": 100, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "PipeTargetStateMachineParameters": { + "additionalProperties": false, + "properties": { + "InvocationType": { + "$ref": "#/definitions/PipeTargetInvocationType" + } + }, + "type": "object" + }, + "PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 2000, + "minLength": 0, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/PlacementConstraintType" + } + }, + "type": "object" + }, + "PlacementConstraintType": { + "enum": [ + "distinctInstance", + "memberOf" + ], + "type": "string" + }, + "PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "Type": { + "$ref": "#/definitions/PlacementStrategyType" + } + }, + "type": "object" + }, + "PlacementStrategyType": { + "enum": [ + "random", + "spread", + "binpack" + ], + "type": "string" + }, + "PropagateTags": { + "enum": [ + "TASK_DEFINITION" + ], + "type": "string" + }, + "QueryStringParametersMap": { + "additionalProperties": false, + "patternProperties": { + "^[^\\x00-\\x1F\\x7F]+|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$": { + "maxLength": 512, + "minLength": 0, + "pattern": "^[^\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F]+|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + } + }, + "type": "object" + }, + "RequestedPipeState": { + "enum": [ + "RUNNING", + "STOPPED" + ], + "type": "string" + }, + "SageMakerPipelineParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9])*|(\\$(\\.[\\w/_-]+(\\[(\\d+|\\*)\\])*)*)$", + "type": "string" + }, + "Value": { + "maxLength": 1024, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "SelfManagedKafkaAccessConfigurationCredentials": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "BasicAuth": { + "description": "Optional SecretManager ARN which stores the database credentials", + "maxLength": 1600, + "minLength": 1, + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "type": "string" + } + }, + "required": [ + "BasicAuth" + ], + "title": "BasicAuth", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "SaslScram512Auth": { + "description": "Optional SecretManager ARN which stores the database credentials", + "maxLength": 1600, + "minLength": 1, + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "type": "string" + } + }, + "required": [ + "SaslScram512Auth" + ], + "title": "SaslScram512Auth", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "SaslScram256Auth": { + "description": "Optional SecretManager ARN which stores the database credentials", + "maxLength": 1600, + "minLength": 1, + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "type": "string" + } + }, + "required": [ + "SaslScram256Auth" + ], + "title": "SaslScram256Auth", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "ClientCertificateTlsAuth": { + "description": "Optional SecretManager ARN which stores the database credentials", + "maxLength": 1600, + "minLength": 1, + "pattern": "^(^arn:aws([a-z]|\\-)*:secretsmanager:([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}):(\\d{12}):secret:.+)$", + "type": "string" + } + }, + "required": [ + "ClientCertificateTlsAuth" + ], + "title": "ClientCertificateTlsAuth", + "type": "object" + } + ] + }, + "SelfManagedKafkaAccessConfigurationVpc": { + "additionalProperties": false, + "properties": { + "SecurityGroup": { + "description": "List of SecurityGroupId.", + "items": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^sg-[0-9a-zA-Z]*$", + "type": "string" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Subnets": { + "description": "List of SubnetId.", + "items": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^subnet-[0-9a-z]*$", + "type": "string" + }, + "maxItems": 16, + "minItems": 0, + "type": "array" + } + }, + "type": "object" + }, + "SelfManagedKafkaStartPosition": { + "enum": [ + "TRIM_HORIZON", + "LATEST" + ], + "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" + }, + "TagMap": { + "additionalProperties": false, + "maxProperties": 50, + "minProperties": 1, + "patternProperties": { + ".+": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Definition of AWS::Pipes::Pipe Resource Type", + "handlers": { + "create": { + "permissions": [ + "pipes:CreatePipe", + "pipes:DescribePipe", + "pipes:TagResource", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "pipes:DeletePipe", + "pipes:DescribePipe" + ] + }, + "list": { + "permissions": [ + "pipes:ListPipes" + ] + }, + "read": { + "permissions": [ + "pipes:DescribePipe" + ] + }, + "update": { + "permissions": [ + "pipes:UpdatePipe", + "pipes:TagResource", + "pipes:UntagResource", + "pipes:DescribePipe", + "iam:PassRole" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "maxLength": 1600, + "minLength": 1, + "pattern": "^arn:aws([a-z]|\\-)*:([a-zA-Z0-9\\-]+):([a-z]|\\d|\\-)*:([0-9]{12})?:(.+)$", + "type": "string" + }, + "CreationTime": { + "format": "date-time", + "type": "string" + }, + "CurrentState": { + "$ref": "#/definitions/PipeState" + }, + "Description": { + "maxLength": 512, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + }, + "DesiredState": { + "$ref": "#/definitions/RequestedPipeState" + }, + "Enrichment": { + "maxLength": 1600, + "minLength": 0, + "pattern": "^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + "type": "string" + }, + "EnrichmentParameters": { + "$ref": "#/definitions/PipeEnrichmentParameters" + }, + "LastModifiedTime": { + "format": "date-time", + "type": "string" + }, + "Name": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[\\.\\-_A-Za-z0-9]+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 1600, + "minLength": 1, + "pattern": "^arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z0-9+=,.@\\-_/]+$", + "type": "string" + }, + "Source": { + "maxLength": 1600, + "minLength": 1, + "pattern": "^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + "type": "string" + }, + "SourceParameters": { + "$ref": "#/definitions/PipeSourceParameters" + }, + "StateReason": { + "maxLength": 512, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagMap" + }, + "Target": { + "maxLength": 1600, + "minLength": 1, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.+)$", + "type": "string" + }, + "TargetParameters": { + "$ref": "#/definitions/PipeTargetParameters" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreationTime", + "/properties/CurrentState", + "/properties/LastModifiedTime", + "/properties/StateReason" + ], + "required": [ + "RoleArn", + "Source", + "Target" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Pipes::Pipe", + "writeOnlyProperties": [ + "/properties/TargetParameters", + "/properties/SourceParameters" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", + "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", + "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", + "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", + "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/OptionGroupName": "$lowercase(OptionGroupName)", + "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", + "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/Endpoint/HostedZoneId", + "/properties/DbiResourceId", + "/properties/DBInstanceArn", + "/properties/DBSystemId", + "/properties/MasterUserSecret/SecretArn", + "/properties/CertificateDetails/CAIdentifier", + "/properties/CertificateDetails/ValidTill" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::RDS::DBInstance", + "writeOnlyProperties": [ + "/properties/AllowMajorVersionUpgrade", + "/properties/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_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..370f799510 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-cluster.json @@ -0,0 +1,195 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/MasterUsername", + "/properties/OwnerAccount", + "/properties/SnapshotIdentifier", + "/properties/Encrypted", + "/properties/Port", + "/properties/DBName", + "/properties/SnapshotClusterIdentifier", + "/properties/AvailabilityZone", + "/properties/ClusterSubnetGroupName", + "/properties/ClusterIdentifier", + "/properties/ElasticIp" + ], + "definitions": { + "LoggingProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllowVersionUpgrade": { + "type": "boolean" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "AvailabilityZone": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterParameterGroupName": { + "type": "string" + }, + "ClusterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ClusterSubnetGroupName": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "ClusterVersion": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "ElasticIp": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Endpoint": { + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "EndpointAddress": { + "type": "string" + }, + "EndpointPort": { + "type": "string" + }, + "HsmClientCertificateIdentifier": { + "type": "string" + }, + "HsmConfigurationIdentifier": { + "type": "string" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/LoggingProperties" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "NodeType": { + "cfnRegionSchema": "aws_redshift_cluster/nodetype_enum", + "type": "string" + }, + "NumberOfNodes": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "OwnerAccount": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Endpoint/Port", + "/properties/Endpoint/Address" + ], + "required": [ + "MasterUserPassword", + "NodeType", + "MasterUsername", + "DBName", + "ClusterType" + ], + "typeName": "AWS::Redshift::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-clusterparametergroup.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-clusterparametergroup.json new file mode 100644 index 0000000000..d05a398a2c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-clusterparametergroup.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ParameterGroupFamily", + "/properties/Description" + ], + "definitions": { + "Parameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterParameterGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ParameterGroupFamily": { + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/Parameter" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "ParameterGroupFamily" + ], + "typeName": "AWS::Redshift::ClusterParameterGroup" +} 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..855e1344e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-redshift-clustersubnetgroup.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterSubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::Redshift::ClusterSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53-healthcheck.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53-healthcheck.json new file mode 100644 index 0000000000..aae9580ade --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53-healthcheck.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "definitions": { + "AlarmIdentifier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region", + "Name" + ], + "type": "object" + }, + "HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "$ref": "#/definitions/AlarmIdentifier" + }, + "ChildHealthChecks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableSNI": { + "type": "boolean" + }, + "FailureThreshold": { + "type": "integer" + }, + "FullyQualifiedDomainName": { + "type": "string" + }, + "HealthThreshold": { + "type": "integer" + }, + "IPAddress": { + "type": "string" + }, + "InsufficientDataHealthStatus": { + "type": "string" + }, + "Inverted": { + "type": "boolean" + }, + "MeasureLatency": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RequestInterval": { + "type": "integer" + }, + "ResourcePath": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "HealthCheckTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HealthCheck", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HealthCheckConfig": { + "$ref": "#/definitions/HealthCheckConfig", + "cfnSchema": [ + "aws_route53_healthcheck/healthcheckconfig_type_inclusive" + ] + }, + "HealthCheckTags": { + "items": { + "$ref": "#/definitions/HealthCheckTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "HealthCheckConfig" + ], + "typeName": "AWS::Route53::HealthCheck" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4f589ca0c9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53-hostedzone.json @@ -0,0 +1,108 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "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": [ + "VPCRegion", + "VPCId" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HostedZone", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "required": [ + "Name" + ], + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53resolver-resolverrule.json new file mode 100644 index 0000000000..953bf586fb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53resolver-resolverrule.json @@ -0,0 +1,90 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleType", + "/properties/DomainName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53Resolver::ResolverRule", + "primaryIdentifier": [ + "/properties/ResolverRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResolverEndpointId": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "RuleType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetIps": { + "items": { + "$ref": "#/definitions/TargetAddress" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ResolverRuleId", + "/properties/Arn" + ], + "required": [ + "DomainName", + "RuleType" + ], + "typeName": "AWS::Route53Resolver::ResolverRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53resolver-resolverruleassociation.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53resolver-resolverruleassociation.json new file mode 100644 index 0000000000..6b514ce0da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-route53resolver-resolverruleassociation.json @@ -0,0 +1,34 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/VPCId", + "/properties/ResolverRuleId" + ], + "description": "Resource Type definition for AWS::Route53Resolver::ResolverRuleAssociation", + "primaryIdentifier": [ + "/properties/ResolverRuleAssociationId" + ], + "properties": { + "Name": { + "type": "string" + }, + "ResolverRuleAssociationId": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "VPCId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ResolverRuleAssociationId" + ], + "required": [ + "VPCId", + "ResolverRuleId" + ], + "typeName": "AWS::Route53Resolver::ResolverRuleAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-secretsmanager-secrettargetattachment.json new file mode 100644 index 0000000000..ace966c437 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-secretsmanager-secrettargetattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretId": { + "type": "string" + }, + "TargetId": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecretId", + "TargetType", + "TargetId" + ], + "typeName": "AWS::SecretsManager::SecretTargetAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-acceptedportfolioshare.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-acceptedportfolioshare.json new file mode 100644 index 0000000000..767e95ecfd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-acceptedportfolioshare.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId" + ], + "typeName": "AWS::ServiceCatalog::AcceptedPortfolioShare" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-portfolio.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-portfolio.json new file mode 100644 index 0000000000..79797255b4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-portfolio.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ServiceCatalog::Portfolio", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioName": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/PortfolioName" + ], + "required": [ + "ProviderName", + "DisplayName" + ], + "typeName": "AWS::ServiceCatalog::Portfolio" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-portfolioprincipalassociation.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-portfolioprincipalassociation.json new file mode 100644 index 0000000000..2ae9e8819b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-portfolioprincipalassociation.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId", + "/properties/PrincipalARN", + "/properties/PrincipalType" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "PrincipalARN": { + "type": "string" + }, + "PrincipalType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PrincipalARN", + "PortfolioId", + "PrincipalType" + ], + "typeName": "AWS::ServiceCatalog::PortfolioPrincipalAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-portfolioproductassociation.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-portfolioproductassociation.json new file mode 100644 index 0000000000..ba9090e0f3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-portfolioproductassociation.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/SourcePortfolioId", + "/properties/PortfolioId", + "/properties/ProductId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "SourcePortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId", + "ProductId" + ], + "typeName": "AWS::ServiceCatalog::PortfolioProductAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-tagoptionassociation.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-tagoptionassociation.json new file mode 100644 index 0000000000..6ab91b4165 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-servicecatalog-tagoptionassociation.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceId", + "/properties/TagOptionId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "TagOptionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TagOptionId", + "ResourceId" + ], + "typeName": "AWS::ServiceCatalog::TagOptionAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-stepfunctions-activity.json new file mode 100644 index 0000000000..15981c2a5c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-stepfunctions-activity.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for Activity", + "handlers": { + "create": { + "permissions": [ + "states:CreateActivity", + "states:TagResource" + ] + }, + "delete": { + "permissions": [ + "states:DescribeActivity", + "states:DeleteActivity" + ] + }, + "list": { + "permissions": [ + "states:ListActivities" + ] + }, + "read": { + "permissions": [ + "states:DescribeActivity", + "states:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "states:ListTagsForResource", + "states:TagResource", + "states:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagsEntry" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::StepFunctions::Activity" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-ipset.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-ipset.json new file mode 100644 index 0000000000..198879fe09 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-ipset.json @@ -0,0 +1,50 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "IPSetDescriptor": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::IPSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "IPSetDescriptors": { + "items": { + "$ref": "#/definitions/IPSetDescriptor" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "typeName": "AWS::WAF::IPSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-rule.json new file mode 100644 index 0000000000..5ae8e6b6b7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-rule.json @@ -0,0 +1,68 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "enum": [ + "IPMatch", + "ByteMatch", + "SqlInjectionMatch", + "GeoMatch", + "SizeConstraint", + "XssMatch", + "RegexMatch" + ], + "type": "string" + } + }, + "required": [ + "Type", + "DataId", + "Negated" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::Rule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/Predicate" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "Name" + ], + "typeName": "AWS::WAF::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-sizeconstraintset.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-sizeconstraintset.json new file mode 100644 index 0000000000..cc2fdb3cd9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-sizeconstraintset.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "type": "integer" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "Size", + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::SizeConstraintSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/SizeConstraint" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SizeConstraints", + "Name" + ], + "typeName": "AWS::WAF::SizeConstraintSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-webacl.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-webacl.json new file mode 100644 index 0000000000..d95f27d59b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-webacl.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "ActivatedRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/WafAction" + }, + "Priority": { + "type": "integer" + }, + "RuleId": { + "type": "string" + } + }, + "required": [ + "Priority", + "RuleId" + ], + "type": "object" + }, + "WafAction": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::WebACL", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DefaultAction": { + "$ref": "#/definitions/WafAction" + }, + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ActivatedRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "DefaultAction", + "Name" + ], + "typeName": "AWS::WAF::WebACL" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-xssmatchset.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-xssmatchset.json new file mode 100644 index 0000000000..a7cd951419 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-waf-xssmatchset.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::XssMatchSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/XssMatchTuple" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "XssMatchTuples", + "Name" + ], + "typeName": "AWS::WAF::XssMatchSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-wafv2-rulegroup.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-wafv2-rulegroup.json new file mode 100644 index 0000000000..dd0cd3570b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-wafv2-rulegroup.json @@ -0,0 +1,1241 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Count traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the RuleGroup", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the RuleGroup.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelSummary": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP" + ], + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of RuleGroup that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront RuleGroup, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the RuleGroup.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a RuleGroup, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a RuleGroup, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the RuleGroup with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a RuleGroup, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteRuleGroup", + "wafv2:GetRuleGroup" + ] + }, + "list": { + "permissions": [ + "wafv2:listRuleGroups" + ] + }, + "read": { + "permissions": [ + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AvailableLabels": { + "description": "Collection of Available Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "ConsumedLabels": { + "description": "Collection of Consumed Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/LabelNamespace", + "/properties/AvailableLabels/*/Name", + "/properties/ConsumedLabels/*/Name" + ], + "required": [ + "Capacity", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::RuleGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-wafv2-webacl.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-wafv2-webacl.json new file mode 100644 index 0000000000..8153b3010f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-wafv2-webacl.json @@ -0,0 +1,1699 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AWSManagedRulesATPRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Account Takeover Prevention managed rule group in the web ACL", + "properties": { + "LoginPath": { + "type": "string" + }, + "RequestInspection": { + "$ref": "#/definitions/RequestInspection" + }, + "ResponseInspection": { + "$ref": "#/definitions/ResponseInspection" + } + }, + "required": [ + "LoginPath" + ], + "type": "object" + }, + "AWSManagedRulesBotControlRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Bot Control managed rule group in the web ACL", + "properties": { + "InspectionLevel": { + "enum": [ + "COMMON", + "TARGETED" + ], + "type": "string" + } + }, + "required": [ + "InspectionLevel" + ], + "type": "object" + }, + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AssociationConfig": { + "additionalProperties": false, + "description": "AssociationConfig for body inspection", + "properties": { + "RequestBody": { + "$ref": "#/definitions/RequestBody" + } + }, + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "DefaultAction": { + "additionalProperties": false, + "description": "Default Action WebACL will take against ingress traffic when there is no matching Rule.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + } + }, + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the WebACL", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the WebACL.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "ExcludedRule": { + "additionalProperties": false, + "description": "Excluded Rule in the RuleGroup or ManagedRuleGroup will not be evaluated.", + "properties": { + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "FieldIdentifier": { + "additionalProperties": false, + "properties": { + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "Identifier" + ], + "type": "object" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "ManagedRuleGroupConfig": { + "additionalProperties": false, + "description": "ManagedRuleGroupConfig.", + "properties": { + "AWSManagedRulesATPRuleSet": { + "$ref": "#/definitions/AWSManagedRulesATPRuleSet" + }, + "AWSManagedRulesBotControlRuleSet": { + "$ref": "#/definitions/AWSManagedRulesBotControlRuleSet" + }, + "LoginPath": { + "maxLength": 256, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "type": "object" + }, + "ManagedRuleGroupStatement": { + "additionalProperties": false, + "properties": { + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "ManagedRuleGroupConfigs": { + "description": "Collection of ManagedRuleGroupConfig.", + "items": { + "$ref": "#/definitions/ManagedRuleGroupConfig" + }, + "type": "array" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + }, + "VendorName": { + "type": "string" + }, + "Version": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[\\w#:\\.\\-/]+$", + "type": "string" + } + }, + "required": [ + "VendorName", + "Name" + ], + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OverrideAction": { + "additionalProperties": false, + "description": "Override a RuleGroup or ManagedRuleGroup behavior. This can only be applied to Rule that has RuleGroupReferenceStatement or ManagedRuleGroupReferenceStatement.", + "properties": { + "Count": { + "description": "Count traffic towards application.", + "type": "object" + }, + "None": { + "description": "Keep the RuleGroup or ManagedRuleGroup behavior as is.", + "type": "object" + } + }, + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "QueryString": { + "type": "object" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP" + ], + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RequestBody": { + "additionalProperties": false, + "description": "Map of AssociatedResourceType and RequestBodyAssociatedResourceTypeConfig", + "patternProperties": { + "^(CLOUDFRONT)$": { + "$ref": "#/definitions/RequestBodyAssociatedResourceTypeConfig" + } + }, + "type": "object" + }, + "RequestBodyAssociatedResourceTypeConfig": { + "additionalProperties": false, + "description": "Configures the inspection size in the request body.", + "properties": { + "DefaultSizeInspectionLimit": { + "$ref": "#/definitions/SizeInspectionLimit" + } + }, + "required": [ + "DefaultSizeInspectionLimit" + ], + "type": "object" + }, + "RequestInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login requests", + "properties": { + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "PayloadType", + "UsernameField", + "PasswordField" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login responses", + "properties": { + "BodyContains": { + "$ref": "#/definitions/ResponseInspectionBodyContains" + }, + "Header": { + "$ref": "#/definitions/ResponseInspectionHeader" + }, + "Json": { + "$ref": "#/definitions/ResponseInspectionJson" + }, + "StatusCode": { + "$ref": "#/definitions/ResponseInspectionStatusCode" + } + }, + "type": "object" + }, + "ResponseInspectionBodyContains": { + "additionalProperties": false, + "description": "Response body contents that indicate success or failure of a login request", + "properties": { + "FailureStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "SuccessStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessStrings", + "FailureStrings" + ], + "type": "object" + }, + "ResponseInspectionHeader": { + "additionalProperties": false, + "description": "Response headers that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 200, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Name", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionJson": { + "additionalProperties": false, + "description": "Response JSON that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Identifier", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionStatusCode": { + "additionalProperties": false, + "description": "Response status codes that indicate success or failure of a login request", + "properties": { + "FailureCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "SuccessCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessCodes", + "FailureCodes" + ], + "type": "object" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of WebACL that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "OverrideAction": { + "$ref": "#/definitions/OverrideAction" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleActionOverride": { + "additionalProperties": false, + "description": "Action override for rules in the rule group.", + "properties": { + "ActionToUse": { + "$ref": "#/definitions/RuleAction" + }, + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name", + "ActionToUse" + ], + "type": "object" + }, + "RuleGroupReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront WebACL, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SizeInspectionLimit": { + "enum": [ + "KB_16", + "KB_32", + "KB_48", + "KB_64" + ], + "type": "string" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "ManagedRuleGroupStatement": { + "$ref": "#/definitions/ManagedRuleGroupStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "RuleGroupReferenceStatement": { + "$ref": "#/definitions/RuleGroupReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "TokenDomains": { + "description": "List of domains to accept in web request tokens, in addition to the domain of the protected resource.", + "items": { + "maxLength": 253, + "minLength": 1, + "pattern": "^[\\w\\.\\-/]+$", + "type": "string" + }, + "type": "array" + }, + "UriPath": { + "type": "object" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the WebACL.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteWebACL", + "wafv2:GetWebACL" + ] + }, + "list": { + "permissions": [ + "wafv2:listWebACLs" + ] + }, + "read": { + "permissions": [ + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AssociationConfig": { + "$ref": "#/definitions/AssociationConfig" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "DefaultAction": { + "$ref": "#/definitions/DefaultAction" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "TokenDomains": { + "$ref": "#/definitions/TokenDomains" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Capacity", + "/properties/Id", + "/properties/LabelNamespace" + ], + "required": [ + "DefaultAction", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::WebACL" +} 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 2064f6675d..f294924883 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py @@ -101,6 +101,7 @@ "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", "AWS::MediaStore::Container", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -403,6 +404,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -505,6 +507,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", "AWS::Glue::Crawler", @@ -708,6 +711,7 @@ "AWS::RDS::DBClusterParameterGroup", "AWS::WAF::XssMatchSet", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::MediaLive::Multiplex", "AWS::Scheduler::ScheduleGroup", "AWS::DevOpsGuru::NotificationChannel", @@ -997,6 +1001,7 @@ "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", "aws-mediastore-container.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -1037,6 +1042,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1126,6 +1132,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-vpclattice-rule.json", @@ -1146,6 +1153,7 @@ "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1286,6 +1294,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1323,6 +1332,7 @@ "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1378,15 +1388,14 @@ "aws-networkmanager-sitetositevpnattachment.json", "aws-ec2-securitygroup.json", "aws-quicksight-theme.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-glue-crawler.json", - "aws-cloudfront-function.json", "aws-apigateway-method.json", "aws-wafregional-regexpatternset.json", "aws-ssm-patchbaseline.json", @@ -1414,6 +1423,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", @@ -1509,7 +1519,6 @@ "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -1574,6 +1583,7 @@ "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", "aws-devopsguru-notificationchannel.json", @@ -1743,6 +1753,7 @@ "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-nimblestudio-studio.json", "aws-ec2-trafficmirrorsession.json", diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-securityhub-hub.json deleted file mode 100644 index b0401a5225..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-securityhub-hub.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "additionalProperties": false, - "description": "Resource Type definition for AWS::SecurityHub::Hub", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutoEnableControls": { - "type": "boolean" - }, - "ControlFindingGenerator": { - "type": "string" - }, - "EnableDefaultStandards": { - "type": "boolean" - }, - "Id": { - "type": "string" - }, - "Tags": { - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecurityHub::Hub" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} 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 f6340b3d0b..69286b3c7b 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py @@ -75,6 +75,7 @@ "AWS::NetworkManager::ConnectAttachment", "AWS::S3::AccessGrantsInstance", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -320,6 +321,7 @@ "AWS::Config::ConfigRule", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -405,6 +407,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", "AWS::Glue::Crawler", @@ -772,6 +775,7 @@ "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -805,6 +809,7 @@ "aws-ec2-vpcendpointconnectionnotification.json", "aws-codepipeline-pipeline.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -873,6 +878,7 @@ "aws-s3outposts-endpoint.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -888,9 +894,11 @@ "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", + "aws-ec2-route.json", "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", @@ -898,7 +906,6 @@ "aws-xray-resourcepolicy.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-wafv2-loggingconfiguration.json", - "aws-dynamodb-globaltable.json", "aws-backup-backupplan.json", "aws-imagebuilder-distributionconfiguration.json", "aws-lakeformation-permissions.json", @@ -994,6 +1001,7 @@ "aws-config-configrule.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1022,6 +1030,7 @@ "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-backup-backupvault.json", @@ -1068,15 +1077,14 @@ "aws-ec2-transitgatewayconnect.json", "aws-networkmanager-sitetositevpnattachment.json", "aws-ec2-securitygroup.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-glue-crawler.json", - "aws-cloudfront-function.json", "aws-apigateway-method.json", "aws-wafregional-regexpatternset.json", "aws-ssm-patchbaseline.json", @@ -1097,6 +1105,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-servicecatalog-resourceupdateconstraint.json", @@ -1172,7 +1181,6 @@ "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -1333,6 +1341,7 @@ "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-s3outposts-bucketpolicy.json", "aws-batch-jobqueue.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-route.json deleted file mode 100644 index 722dba73ff..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ec2-route.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RouteTableId", - "/properties/DestinationCidrBlock", - "/properties/DestinationIpv6CidrBlock", - "/properties/DestinationPrefixListId" - ], - "description": "Resource Type definition for AWS::EC2::Route", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteRoute", - "ec2:DescribeRouteTables" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "RouteTableId": { - "$ref": "resource-schema.json#/properties/RouteTableId" - } - }, - "required": [ - "RouteTableId" - ] - }, - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - } - }, - "primaryIdentifier": [ - "/properties/RouteTableId", - "/properties/CidrBlock" - ], - "properties": { - "CarrierGatewayId": { - "description": "The ID of the carrier gateway.", - "type": "string" - }, - "CidrBlock": { - "description": "The primary identifier of the resource generated by the service.", - "type": "string" - }, - "DestinationCidrBlock": { - "description": "The IPv4 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "description": "The IPv6 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationPrefixListId": { - "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "description": "The ID of the egress-only internet gateway.", - "type": "string" - }, - "GatewayId": { - "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", - "type": "string" - }, - "InstanceId": { - "description": "The ID of a NAT instance in your VPC.", - "type": "string" - }, - "LocalGatewayId": { - "description": "The ID of the local gateway.", - "type": "string" - }, - "NatGatewayId": { - "description": "The ID of a NAT gateway.", - "type": "string" - }, - "NetworkInterfaceId": { - "description": "The ID of the network interface.", - "type": "string" - }, - "RouteTableId": { - "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", - "type": "string" - }, - "TransitGatewayId": { - "description": "The ID of a transit gateway.", - "type": "string" - }, - "VpcEndpointId": { - "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", - "type": "string" - }, - "VpcPeeringConnectionId": { - "description": "The ID of a VPC peering connection.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CidrBlock" - ], - "required": [ - "RouteTableId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", - "tagging": { - "taggable": false - }, - "typeName": "AWS::EC2::Route" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-securityhub-hub.json deleted file mode 100644 index b0401a5225..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-securityhub-hub.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "additionalProperties": false, - "description": "Resource Type definition for AWS::SecurityHub::Hub", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutoEnableControls": { - "type": "boolean" - }, - "ControlFindingGenerator": { - "type": "string" - }, - "EnableDefaultStandards": { - "type": "boolean" - }, - "Id": { - "type": "string" - }, - "Tags": { - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecurityHub::Hub" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py new file mode 100644 index 0000000000..ebd468ea71 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py @@ -0,0 +1,902 @@ +from typing import List + +# pylint: disable=too-many-lines +types = [ + "AWS::CDK::Metadata", + "AWS::CE::AnomalySubscription", + "AWS::Shield::DRTAccess", + "AWS::Glue::Partition", + "AWS::Shield::ProactiveEngagement", + "AWS::ApiGateway::BasePathMapping", + "AWS::GuardDuty::Filter", + "AWS::ECS::Service", + "AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "AWS::DMS::ReplicationConfig", + "AWS::DynamoDB::Table", + "AWS::AmazonMQ::ConfigurationAssociation", + "AWS::EC2::SecurityGroupEgress", + "AWS::Glue::DataQualityRuleset", + "AWS::Config::ConfigurationRecorder", + "AWS::EC2::NetworkPerformanceMetricSubscription", + "AWS::CloudFront::ContinuousDeploymentPolicy", + "AWS::ECR::ReplicationConfiguration", + "AWS::AppConfig::ExtensionAssociation", + "AWS::EC2::IPAMPoolCidr", + "AWS::Redshift::ClusterSubnetGroup", + "AWS::RDS::DBInstance", + "AWS::EC2::VPCDHCPOptionsAssociation", + "AWS::ApiGateway::Model", + "AWS::EC2::NetworkAcl", + "AWS::Lambda::EventSourceMapping", + "AWS::Logs::ResourcePolicy", + "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::EC2::NetworkAclEntry", + "AWS::Transfer::Certificate", + "AWS::ApiGateway::DocumentationPart", + "AWS::CloudWatch::CompositeAlarm", + "AWS::Route53Resolver::FirewallDomainList", + "AWS::AppConfig::Application", + "AWS::OpsWorks::Stack", + "AWS::GameLift::Fleet", + "AWS::DataSync::LocationFSxWindows", + "AWS::GameLift::Build", + "AWS::ApiGateway::RequestValidator", + "AWS::AutoScaling::WarmPool", + "AWS::ApplicationAutoScaling::ScalableTarget", + "AWS::Config::StoredQuery", + "AWS::ACMPCA::Permission", + "AWS::Transfer::Server", + "AWS::ApiGateway::DomainName", + "AWS::ECS::PrimaryTaskSet", + "AWS::FMS::ResourceSet", + "AWS::AutoScaling::AutoScalingGroup", + "AWS::WAFv2::RegexPatternSet", + "AWS::EKS::FargateProfile", + "AWS::Route53::DNSSEC", + "AWS::EC2::TransitGatewayRouteTable", + "AWS::ControlTower::EnabledControl", + "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", + "AWS::ElastiCache::SecurityGroup", + "AWS::OpsWorks::Layer", + "AWS::KinesisFirehose::DeliveryStream", + "AWS::PCAConnectorAD::DirectoryRegistration", + "AWS::ImageBuilder::Component", + "AWS::Glue::Connection", + "AWS::IAM::Group", + "AWS::Organizations::ResourcePolicy", + "AWS::EC2::TransitGatewayMulticastGroupSource", + "AWS::Transfer::Profile", + "AWS::GameLift::Alias", + "AWS::AppSync::DomainName", + "AWS::ApiGateway::UsagePlanKey", + "AWS::FMS::Policy", + "AWS::CloudFront::RealtimeLogConfig", + "AWS::LakeFormation::DataCellsFilter", + "AWS::DataSync::LocationHDFS", + "AWS::Events::Archive", + "AWS::MSK::Cluster", + "AWS::EC2::VPCEndpointConnectionNotification", + "AWS::CodePipeline::Pipeline", + "AWS::OpsWorks::Instance", + "AWS::Config::ConfigurationAggregator", + "AWS::ImageBuilder::ImagePipeline", + "AWS::ElasticLoadBalancingV2::ListenerCertificate", + "AWS::Route53Resolver::ResolverRuleAssociation", + "AWS::Synthetics::Canary", + "AWS::Backup::RestoreTestingSelection", + "AWS::SNS::Subscription", + "AWS::EC2::NatGateway", + "AWS::InternetMonitor::Monitor", + "AWS::Transfer::Workflow", + "AWS::Glue::DevEndpoint", + "AWS::EventSchemas::Discoverer", + "AWS::ElastiCache::UserGroup", + "AWS::ImageBuilder::ImageRecipe", + "AWS::ApiGateway::RestApi", + "AWS::OpsWorks::ElasticLoadBalancerAttachment", + "AWS::S3ObjectLambda::AccessPointPolicy", + "AWS::ElastiCache::ReplicationGroup", + "AWS::StepFunctions::StateMachineAlias", + "AWS::RDS::GlobalCluster", + "AWS::Glue::Job", + "AWS::ServiceCatalog::CloudFormationProvisionedProduct", + "AWS::Route53::HostedZone", + "AWS::EKS::PodIdentityAssociation", + "AWS::Glue::Table", + "AWS::Logs::MetricFilter", + "AWS::Lambda::Function", + "AWS::SNS::Topic", + "AWS::Backup::BackupSelection", + "AWS::DataSync::LocationFSxLustre", + "AWS::EC2::VPCGatewayAttachment", + "AWS::CloudTrail::Trail", + "AWS::EC2::VPNConnectionRoute", + "AWS::EC2::InternetGateway", + "AWS::EC2::GatewayRouteTableAssociation", + "AWS::WAFv2::IPSet", + "AWS::SSM::Document", + "AWS::IAM::Role", + "AWS::Events::ApiDestination", + "AWS::ElastiCache::ServerlessCache", + "AWS::CloudFront::CloudFrontOriginAccessIdentity", + "AWS::ApiGateway::ApiKey", + "AWS::AutoScaling::LaunchConfiguration", + "AWS::ApiGateway::ClientCertificate", + "AWS::KinesisAnalyticsV2::Application", + "AWS::Lambda::Alias", + "AWS::Logs::LogAnomalyDetector", + "AWS::WAF::IPSet", + "AWS::EC2::TransitGatewayMulticastDomainAssociation", + "AWS::WAF::SizeConstraintSet", + "AWS::ImageBuilder::Image", + "AWS::ElastiCache::SecurityGroupIngress", + "AWS::CloudWatch::Dashboard", + "AWS::CloudWatch::Alarm", + "AWS::GuardDuty::Member", + "AWS::CloudFormation::CustomResource", + "AWS::WAFv2::RuleGroup", + "AWS::ElastiCache::ParameterGroup", + "AWS::NetworkFirewall::LoggingConfiguration", + "AWS::Glue::Classifier", + "AWS::CodeDeploy::DeploymentGroup", + "AWS::CloudFormation::StackSet", + "AWS::EC2::Route", + "AWS::CloudFormation::HookVersion", + "AWS::XRay::ResourcePolicy", + "AWS::ServiceCatalog::LaunchTemplateConstraint", + "AWS::WAFv2::LoggingConfiguration", + "AWS::DynamoDB::GlobalTable", + "AWS::Backup::BackupPlan", + "AWS::ImageBuilder::DistributionConfiguration", + "AWS::LakeFormation::Permissions", + "AWS::Glue::DataCatalogEncryptionSettings", + "AWS::CloudFront::PublicKey", + "AWS::PCAConnectorAD::Connector", + "AWS::RAM::Permission", + "AWS::DataSync::Task", + "AWS::ECS::TaskDefinition", + "AWS::Shield::Protection", + "AWS::AppSync::FunctionConfiguration", + "AWS::EC2::SpotFleet", + "AWS::IoT::PolicyPrincipalAttachment", + "AWS::FMS::NotificationChannel", + "AWS::MSK::BatchScramSecret", + "AWS::S3::Bucket", + "AWS::GuardDuty::IPSet", + "AWS::EMR::SecurityConfiguration", + "AWS::CloudWatch::InsightRule", + "AWS::ApiGateway::UsagePlan", + "AWS::Batch::SchedulingPolicy", + "AWS::ServiceCatalog::PortfolioProductAssociation", + "AWS::Athena::WorkGroup", + "AWS::ServiceCatalog::PortfolioShare", + "AWS::ApiGateway::VpcLink", + "AWS::IAM::ServerCertificate", + "AWS::Events::EventBus", + "AWS::SQS::QueueInlinePolicy", + "AWS::Organizations::Organization", + "AWS::SSM::MaintenanceWindowTarget", + "AWS::ApiGateway::Authorizer", + "AWS::IAM::Policy", + "AWS::RDS::DBSecurityGroupIngress", + "AWS::EC2::TransitGatewayMulticastGroupMember", + "AWS::EC2::VolumeAttachment", + "AWS::Glue::SecurityConfiguration", + "AWS::ApplicationInsights::Application", + "AWS::ECS::ClusterCapacityProviderAssociations", + "AWS::AppConfig::ConfigurationProfile", + "AWS::Route53Resolver::FirewallRuleGroup", + "AWS::MSK::Configuration", + "AWS::EC2::TransitGateway", + "AWS::EC2::VPCEndpointServicePermissions", + "AWS::SSM::MaintenanceWindowTask", + "AWS::EC2::TransitGatewayMulticastDomain", + "AWS::VerifiedPermissions::PolicyTemplate", + "AWS::EKS::Cluster", + "AWS::EFS::FileSystem", + "AWS::Logs::QueryDefinition", + "AWS::IAM::InstanceProfile", + "AWS::DataSync::LocationNFS", + "AWS::CertificateManager::Certificate", + "AWS::SDB::Domain", + "AWS::EC2::SubnetRouteTableAssociation", + "AWS::ServiceCatalog::ServiceActionAssociation", + "AWS::ImageBuilder::ContainerRecipe", + "AWS::EFS::AccessPoint", + "AWS::Redshift::ClusterSecurityGroupIngress", + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation", + "AWS::ElasticLoadBalancingV2::LoadBalancer", + "AWS::OpenSearchService::Domain", + "AWS::Elasticsearch::Domain", + "AWS::ServiceCatalog::StackSetConstraint", + "AWS::EC2::NetworkInterfacePermission", + "AWS::ServiceCatalog::TagOption", + "AWS::ServiceCatalog::LaunchRoleConstraint", + "AWS::SecretsManager::ResourcePolicy", + "AWS::CloudFormation::HookDefaultVersion", + "AWS::Config::ConfigRule", + "AWS::ImageBuilder::Workflow", + "AWS::ECS::TaskSet", + "AWS::AppSync::ApiKey", + "AWS::ACMPCA::CertificateAuthorityActivation", + "AWS::GuardDuty::ThreatIntelSet", + "AWS::EC2::VPC", + "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", + "AWS::MSK::VpcConnection", + "AWS::DataSync::LocationAzureBlob", + "AWS::Logs::LogStream", + "AWS::Route53::RecordSetGroup", + "AWS::OpsWorks::App", + "AWS::Kinesis::Stream", + "AWS::Batch::JobDefinition", + "AWS::IAM::SAMLProvider", + "AWS::CloudFront::KeyGroup", + "AWS::EC2::NetworkInterfaceAttachment", + "AWS::EC2::TransitGatewayAttachment", + "AWS::CodeDeploy::DeploymentConfig", + "AWS::StepFunctions::StateMachineVersion", + "AWS::ServiceCatalogAppRegistry::Application", + "AWS::Glue::Database", + "AWS::Backup::BackupVault", + "AWS::EC2::CustomerGateway", + "AWS::IAM::GroupPolicy", + "AWS::Scheduler::Schedule", + "AWS::WAF::ByteMatchSet", + "AWS::EC2::Host", + "AWS::EC2::RouteTable", + "AWS::DataSync::LocationSMB", + "AWS::SecurityHub::Standard", + "AWS::SNS::TopicInlinePolicy", + "AWS::Redshift::ClusterParameterGroup", + "AWS::Organizations::Policy", + "AWS::Glue::Trigger", + "AWS::GlobalAccelerator::Listener", + "AWS::VerifiedPermissions::PolicyStore", + "AWS::EC2::VPCPeeringConnection", + "AWS::SNS::TopicPolicy", + "AWS::NetworkFirewall::RuleGroup", + "AWS::KMS::Key", + "AWS::ServiceCatalog::AcceptedPortfolioShare", + "AWS::Route53Resolver::FirewallRuleGroupAssociation", + "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", + "AWS::EC2::Subnet", + "AWS::S3ObjectLambda::AccessPoint", + "AWS::WAF::Rule", + "AWS::ElasticBeanstalk::ConfigurationTemplate", + "AWS::SQS::QueuePolicy", + "AWS::AppSync::DomainNameApiAssociation", + "AWS::AppSync::ApiCache", + "AWS::ApiGateway::Account", + "AWS::WAFv2::WebACL", + "AWS::GlobalAccelerator::EndpointGroup", + "AWS::EC2::TransitGatewayConnect", + "AWS::EC2::SecurityGroup", + "AWS::OpsWorks::Volume", + "AWS::IAM::UserToGroupAddition", + "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", + "AWS::EC2::VPNGatewayRoutePropagation", + "AWS::Glue::Crawler", + "AWS::CloudFront::Function", + "AWS::ApiGateway::Method", + "AWS::CloudFront::MonitoringSubscription", + "AWS::EFS::MountTarget", + "AWS::EC2::VPNConnection", + "AWS::WAF::WebACL", + "AWS::Shield::ProtectionGroup", + "AWS::IAM::User", + "AWS::EMR::InstanceGroupConfig", + "AWS::StepFunctions::Activity", + "AWS::Logs::AccountPolicy", + "AWS::S3::BucketPolicy", + "AWS::AppSync::GraphQLSchema", + "AWS::Redshift::Cluster", + "AWS::EMR::InstanceFleetConfig", + "AWS::EMR::Cluster", + "AWS::RDS::DBCluster", + "AWS::ServiceCatalog::ResourceUpdateConstraint", + "AWS::Transfer::Agreement", + "AWS::Chatbot::SlackChannelConfiguration", + "AWS::CloudFront::Distribution", + "AWS::ElastiCache::SubnetGroup", + "AWS::XRay::Group", + "AWS::Oam::Link", + "AWS::ElasticLoadBalancingV2::TrustStoreRevocation", + "AWS::NetworkFirewall::Firewall", + "AWS::EventSchemas::Schema", + "AWS::KMS::ReplicaKey", + "AWS::Redshift::ClusterSecurityGroup", + "AWS::ECR::PullThroughCacheRule", + "AWS::Glue::MLTransform", + "AWS::DataSync::LocationEFS", + "AWS::ApiGateway::Resource", + "AWS::ElasticLoadBalancingV2::TargetGroup", + "AWS::ApplicationAutoScaling::ScalingPolicy", + "AWS::Pipes::Pipe", + "AWS::CloudFormation::Macro", + "AWS::Lambda::LayerVersionPermission", + "AWS::SecretsManager::Secret", + "AWS::ElastiCache::User", + "AWS::Logs::SubscriptionFilter", + "AWS::CodeDeploy::Application", + "AWS::IoT::TopicRule", + "AWS::LakeFormation::PrincipalPermissions", + "AWS::DataSync::LocationS3", + "AWS::AutoScaling::LifecycleHook", + "AWS::FSx::DataRepositoryAssociation", + "AWS::EC2::NetworkInterface", + "AWS::AppSync::Resolver", + "AWS::ControlTower::LandingZone", + "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation", + "AWS::ImageBuilder::LifecyclePolicy", + "AWS::Lambda::EventInvokeConfig", + "AWS::Lambda::LayerVersion", + "AWS::RDS::OptionGroup", + "AWS::OpsWorks::UserProfile", + "AWS::ServiceCatalog::Portfolio", + "AWS::IoT::Policy", + "AWS::SSM::MaintenanceWindow", + "AWS::LakeFormation::TagAssociation", + "AWS::EC2::IPAMResourceDiscovery", + "AWS::ImageBuilder::InfrastructureConfiguration", + "AWS::CloudFormation::WaitCondition", + "AWS::Route53Resolver::ResolverEndpoint", + "AWS::EC2::SubnetNetworkAclAssociation", + "AWS::ServiceCatalog::ServiceAction", + "AWS::IAM::UserPolicy", + "AWS::CloudFront::OriginAccessControl", + "AWS::SecretsManager::RotationSchedule", + "AWS::Lambda::Permission", + "AWS::NetworkFirewall::FirewallPolicy", + "AWS::EKS::IdentityProviderConfig", + "AWS::EC2::IPAMResourceDiscoveryAssociation", + "AWS::ServiceCatalogAppRegistry::AttributeGroup", + "AWS::AppSync::GraphQLApi", + "AWS::EC2::EgressOnlyInternetGateway", + "AWS::EC2::VPCCidrBlock", + "AWS::ACMPCA::CertificateAuthority", + "AWS::Athena::PreparedStatement", + "AWS::AutoScaling::ScheduledAction", + "AWS::LakeFormation::Resource", + "AWS::EC2::IPAMScope", + "AWS::DirectoryService::SimpleAD", + "AWS::EC2::VPCEndpoint", + "AWS::RDS::EventSubscription", + "AWS::Config::AggregationAuthorization", + "AWS::DataSync::Agent", + "AWS::Logs::LogGroup", + "AWS::ECS::Cluster", + "AWS::PCAConnectorAD::Template", + "AWS::EC2::PlacementGroup", + "AWS::Organizations::Account", + "AWS::ECR::Repository", + "AWS::AppConfig::Extension", + "AWS::ElasticLoadBalancingV2::ListenerRule", + "AWS::ElasticLoadBalancingV2::TrustStore", + "AWS::EC2::KeyPair", + "AWS::EC2::EIPAssociation", + "AWS::ElasticBeanstalk::Application", + "AWS::IoT::ThingPrincipalAttachment", + "AWS::EC2::CapacityReservation", + "AWS::ElasticLoadBalancing::LoadBalancer", + "AWS::Transfer::User", + "AWS::IAM::RolePolicy", + "AWS::StepFunctions::StateMachine", + "AWS::RDS::DBClusterParameterGroup", + "AWS::WAF::XssMatchSet", + "AWS::Scheduler::ScheduleGroup", + "AWS::EventSchemas::RegistryPolicy", + "AWS::Route53::KeySigningKey", + "AWS::EventSchemas::Registry", + "AWS::Events::Connection", + "AWS::Athena::DataCatalog", + "AWS::Glue::Workflow", + "AWS::EC2::PrefixList", + "AWS::EC2::Instance", + "AWS::EC2::SubnetCidrBlock", + "AWS::ElasticBeanstalk::ApplicationVersion", + "AWS::WAF::SqlInjectionMatchSet", + "AWS::EC2::TransitGatewayVpcAttachment", + "AWS::EC2::FlowLog", + "AWS::AmazonMQ::Broker", + "AWS::EMR::Step", + "AWS::SSM::Association", + "AWS::CloudFront::ResponseHeadersPolicy", + "AWS::SecurityHub::AutomationRule", + "AWS::MSK::ClusterPolicy", + "AWS::GuardDuty::Master", + "AWS::KMS::Alias", + "AWS::XRay::SamplingRule", + "AWS::Route53Resolver::ResolverRule", + "AWS::Transfer::Connector", + "AWS::ApiGateway::DocumentationVersion", + "AWS::WAFv2::WebACLAssociation", + "AWS::Oam::Sink", + "AWS::ApiGateway::GatewayResponse", + "AWS::ACMPCA::Certificate", + "AWS::EC2::IPAMAllocation", + "AWS::WorkSpaces::Workspace", + "AWS::EC2::InstanceConnectEndpoint", + "AWS::DirectoryService::MicrosoftAD", + "AWS::AppSync::SourceApiAssociation", + "AWS::DataSync::LocationObjectStorage", + "AWS::ECS::CapacityProvider", + "AWS::ElastiCache::CacheCluster", + "AWS::SageMaker::ModelCard", + "AWS::Logs::Destination", + "AWS::EKS::Nodegroup", + "AWS::Organizations::OrganizationalUnit", + "AWS::AppSync::DataSource", + "AWS::SQS::Queue", + "AWS::EC2::SecurityGroupIngress", + "AWS::GuardDuty::Detector", + "AWS::ApiGateway::Stage", + "AWS::Batch::ComputeEnvironment", + "AWS::DataPipeline::Pipeline", + "AWS::IoT::Thing", + "AWS::Route53::HealthCheck", + "AWS::Athena::NamedQuery", + "AWS::ApiGateway::Deployment", + "AWS::LakeFormation::DataLakeSettings", + "AWS::AutoScaling::ScalingPolicy", + "AWS::ECR::RegistryPolicy", + "AWS::RDS::DBSecurityGroup", + "AWS::CloudWatch::MetricStream", + "AWS::SSM::Parameter", + "AWS::Config::DeliveryChannel", + "AWS::IAM::OIDCProvider", + "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", + "AWS::ServiceCatalogAppRegistry::ResourceAssociation", + "AWS::EC2::VPNGateway", + "AWS::CloudFormation::Stack", + "AWS::ResourceGroups::Group", + "AWS::CloudFormation::ResourceDefaultVersion", + "AWS::Backup::RestoreTestingPlan", + "AWS::ServiceCatalog::TagOptionAssociation", + "AWS::EC2::IPAM", + "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", + "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::CloudFront::CachePolicy", + "AWS::IAM::AccessKey", + "AWS::RDS::DBSubnetGroup", + "AWS::SecretsManager::SecretTargetAttachment", + "AWS::AmazonMQ::Configuration", + "AWS::CodePipeline::CustomActionType", + "AWS::AccessAnalyzer::Analyzer", + "AWS::EC2::EC2Fleet", + "AWS::ServiceCatalog::CloudFormationProduct", + "AWS::EC2::VPCEndpointService", + "AWS::IAM::ManagedPolicy", + "AWS::EC2::LaunchTemplate", + "AWS::CloudFront::OriginRequestPolicy", + "AWS::DataSync::LocationFSxONTAP", + "AWS::PCAConnectorAD::ServicePrincipalName", + "AWS::ElasticBeanstalk::Environment", + "AWS::Lambda::Version", + "AWS::EC2::DHCPOptions", + "AWS::EC2::IPAMPool", + "AWS::Kinesis::StreamConsumer", + "AWS::IAM::ServiceLinkedRole", + "AWS::CloudFormation::HookTypeConfig", + "AWS::EC2::Volume", + "AWS::IoT::Certificate", + "AWS::EC2::EIP", + "AWS::VerifiedPermissions::Policy", + "AWS::CloudFormation::ResourceVersion", + "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", + "AWS::RDS::DBParameterGroup", + "AWS::SecurityHub::Hub", + "AWS::S3::AccessPoint", + "AWS::Batch::JobQueue", + "AWS::ElasticLoadBalancingV2::Listener", + "AWS::CloudFormation::WaitConditionHandle", + "AWS::GlobalAccelerator::Accelerator", + "AWS::EKS::Addon", +] + +# pylint: disable=too-many-lines +cached: List[str] = [ + "aws-ce-anomalysubscription.json", + "aws-shield-drtaccess.json", + "aws-glue-partition.json", + "aws-shield-proactiveengagement.json", + "aws-guardduty-filter.json", + "aws-ecs-service.json", + "aws-dms-replicationconfig.json", + "aws-dynamodb-table.json", + "aws-ec2-securitygroupegress.json", + "aws-glue-dataqualityruleset.json", + "aws-config-configurationrecorder.json", + "aws-ec2-networkperformancemetricsubscription.json", + "aws-cloudfront-continuousdeploymentpolicy.json", + "aws-ecr-replicationconfiguration.json", + "aws-appconfig-extensionassociation.json", + "aws-ec2-ipampoolcidr.json", + "aws-ec2-vpcdhcpoptionsassociation.json", + "aws-ec2-networkacl.json", + "aws-lambda-eventsourcemapping.json", + "aws-logs-resourcepolicy.json", + "aws-servicecatalog-launchnotificationconstraint.json", + "aws-ec2-networkaclentry.json", + "aws-transfer-certificate.json", + "aws-cloudwatch-compositealarm.json", + "aws-route53resolver-firewalldomainlist.json", + "aws-appconfig-application.json", + "aws-datasync-locationfsxwindows.json", + "aws-autoscaling-warmpool.json", + "aws-applicationautoscaling-scalabletarget.json", + "aws-config-storedquery.json", + "aws-acmpca-permission.json", + "aws-transfer-server.json", + "aws-ecs-primarytaskset.json", + "aws-fms-resourceset.json", + "aws-autoscaling-autoscalinggroup.json", + "aws-wafv2-regexpatternset.json", + "aws-eks-fargateprofile.json", + "aws-route53-dnssec.json", + "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", + "aws-route53-recordset.json", + "aws-eks-accessentry.json", + "aws-elasticache-securitygroup.json", + "aws-kinesisfirehose-deliverystream.json", + "aws-pcaconnectorad-directoryregistration.json", + "aws-imagebuilder-component.json", + "aws-glue-connection.json", + "aws-iam-group.json", + "aws-organizations-resourcepolicy.json", + "aws-ec2-transitgatewaymulticastgroupsource.json", + "aws-transfer-profile.json", + "aws-appsync-domainname.json", + "aws-fms-policy.json", + "aws-cloudfront-realtimelogconfig.json", + "aws-lakeformation-datacellsfilter.json", + "aws-datasync-locationhdfs.json", + "aws-events-archive.json", + "aws-msk-cluster.json", + "aws-ec2-vpcendpointconnectionnotification.json", + "aws-codepipeline-pipeline.json", + "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", + "aws-elasticloadbalancingv2-listenercertificate.json", + "aws-synthetics-canary.json", + "aws-backup-restoretestingselection.json", + "aws-sns-subscription.json", + "aws-ec2-natgateway.json", + "aws-internetmonitor-monitor.json", + "aws-transfer-workflow.json", + "aws-glue-devendpoint.json", + "aws-eventschemas-discoverer.json", + "aws-elasticache-usergroup.json", + "aws-imagebuilder-imagerecipe.json", + "aws-opsworks-elasticloadbalancerattachment.json", + "aws-s3objectlambda-accesspointpolicy.json", + "aws-elasticache-replicationgroup.json", + "aws-stepfunctions-statemachinealias.json", + "aws-rds-globalcluster.json", + "aws-glue-job.json", + "aws-servicecatalog-cloudformationprovisionedproduct.json", + "aws-eks-podidentityassociation.json", + "aws-glue-table.json", + "aws-logs-metricfilter.json", + "aws-lambda-function.json", + "aws-sns-topic.json", + "aws-backup-backupselection.json", + "aws-datasync-locationfsxlustre.json", + "aws-ec2-vpcgatewayattachment.json", + "aws-cloudtrail-trail.json", + "aws-ec2-internetgateway.json", + "aws-ec2-gatewayroutetableassociation.json", + "aws-wafv2-ipset.json", + "aws-ssm-document.json", + "aws-iam-role.json", + "aws-events-apidestination.json", + "aws-elasticache-serverlesscache.json", + "aws-cloudfront-cloudfrontoriginaccessidentity.json", + "aws-autoscaling-launchconfiguration.json", + "aws-kinesisanalyticsv2-application.json", + "aws-lambda-alias.json", + "aws-logs-loganomalydetector.json", + "aws-ec2-transitgatewaymulticastdomainassociation.json", + "aws-imagebuilder-image.json", + "aws-elasticache-securitygroupingress.json", + "aws-cloudwatch-dashboard.json", + "aws-cloudwatch-alarm.json", + "aws-guardduty-member.json", + "aws-cloudformation-customresource.json", + "aws-elasticache-parametergroup.json", + "aws-networkfirewall-loggingconfiguration.json", + "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", + "aws-cloudformation-stackset.json", + "aws-ec2-route.json", + "aws-cloudformation-hookversion.json", + "aws-xray-resourcepolicy.json", + "aws-servicecatalog-launchtemplateconstraint.json", + "aws-wafv2-loggingconfiguration.json", + "aws-backup-backupplan.json", + "aws-imagebuilder-distributionconfiguration.json", + "aws-lakeformation-permissions.json", + "aws-cloudfront-publickey.json", + "aws-pcaconnectorad-connector.json", + "aws-ram-permission.json", + "aws-datasync-task.json", + "aws-ecs-taskdefinition.json", + "aws-shield-protection.json", + "aws-appsync-functionconfiguration.json", + "aws-fms-notificationchannel.json", + "aws-msk-batchscramsecret.json", + "aws-s3-bucket.json", + "aws-guardduty-ipset.json", + "aws-cloudwatch-insightrule.json", + "aws-batch-schedulingpolicy.json", + "aws-athena-workgroup.json", + "aws-servicecatalog-portfolioshare.json", + "aws-iam-servercertificate.json", + "aws-events-eventbus.json", + "aws-sqs-queueinlinepolicy.json", + "aws-organizations-organization.json", + "aws-ssm-maintenancewindowtarget.json", + "aws-iam-policy.json", + "aws-rds-dbsecuritygroupingress.json", + "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-ec2-volumeattachment.json", + "aws-glue-securityconfiguration.json", + "aws-applicationinsights-application.json", + "aws-ecs-clustercapacityproviderassociations.json", + "aws-appconfig-configurationprofile.json", + "aws-route53resolver-firewallrulegroup.json", + "aws-msk-configuration.json", + "aws-ec2-transitgateway.json", + "aws-ec2-vpcendpointservicepermissions.json", + "aws-ssm-maintenancewindowtask.json", + "aws-ec2-transitgatewaymulticastdomain.json", + "aws-verifiedpermissions-policytemplate.json", + "aws-eks-cluster.json", + "aws-efs-filesystem.json", + "aws-logs-querydefinition.json", + "aws-datasync-locationnfs.json", + "aws-certificatemanager-certificate.json", + "aws-sdb-domain.json", + "aws-ec2-subnetroutetableassociation.json", + "aws-servicecatalog-serviceactionassociation.json", + "aws-imagebuilder-containerrecipe.json", + "aws-efs-accesspoint.json", + "aws-redshift-clustersecuritygroupingress.json", + "aws-servicecatalogappregistry-attributegroupassociation.json", + "aws-opensearchservice-domain.json", + "aws-elasticsearch-domain.json", + "aws-servicecatalog-stacksetconstraint.json", + "aws-servicecatalog-tagoption.json", + "aws-servicecatalog-launchroleconstraint.json", + "aws-secretsmanager-resourcepolicy.json", + "aws-cloudformation-hookdefaultversion.json", + "aws-config-configrule.json", + "aws-imagebuilder-workflow.json", + "aws-ecs-taskset.json", + "aws-appsync-apikey.json", + "aws-acmpca-certificateauthorityactivation.json", + "aws-guardduty-threatintelset.json", + "aws-ec2-vpc.json", + "aws-arczonalshift-zonalautoshiftconfiguration.json", + "aws-msk-vpcconnection.json", + "aws-datasync-locationazureblob.json", + "aws-logs-logstream.json", + "aws-route53-recordsetgroup.json", + "aws-opsworks-app.json", + "aws-kinesis-stream.json", + "aws-batch-jobdefinition.json", + "aws-iam-samlprovider.json", + "aws-cloudfront-keygroup.json", + "aws-ec2-networkinterfaceattachment.json", + "aws-codedeploy-deploymentconfig.json", + "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", + "aws-glue-database.json", + "aws-backup-backupvault.json", + "aws-iam-grouppolicy.json", + "aws-scheduler-schedule.json", + "aws-waf-bytematchset.json", + "aws-ec2-routetable.json", + "aws-datasync-locationsmb.json", + "aws-securityhub-standard.json", + "aws-sns-topicinlinepolicy.json", + "aws-organizations-policy.json", + "aws-glue-trigger.json", + "aws-globalaccelerator-listener.json", + "aws-verifiedpermissions-policystore.json", + "aws-ec2-vpcpeeringconnection.json", + "aws-sns-topicpolicy.json", + "aws-networkfirewall-rulegroup.json", + "aws-kms-key.json", + "aws-route53resolver-firewallrulegroupassociation.json", + "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", + "aws-ec2-subnet.json", + "aws-s3objectlambda-accesspoint.json", + "aws-sqs-queuepolicy.json", + "aws-appsync-domainnameapiassociation.json", + "aws-appsync-apicache.json", + "aws-globalaccelerator-endpointgroup.json", + "aws-ec2-transitgatewayconnect.json", + "aws-ec2-securitygroup.json", + "aws-opsworks-volume.json", + "aws-iam-usertogroupaddition.json", + "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", + "aws-ec2-vpngatewayroutepropagation.json", + "aws-glue-crawler.json", + "aws-cloudfront-monitoringsubscription.json", + "aws-efs-mounttarget.json", + "aws-shield-protectiongroup.json", + "aws-iam-user.json", + "aws-emr-instancegroupconfig.json", + "aws-logs-accountpolicy.json", + "aws-s3-bucketpolicy.json", + "aws-appsync-graphqlschema.json", + "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", + "aws-servicecatalog-resourceupdateconstraint.json", + "aws-transfer-agreement.json", + "aws-chatbot-slackchannelconfiguration.json", + "aws-cloudfront-distribution.json", + "aws-xray-group.json", + "aws-oam-link.json", + "aws-elasticloadbalancingv2-truststorerevocation.json", + "aws-networkfirewall-firewall.json", + "aws-eventschemas-schema.json", + "aws-kms-replicakey.json", + "aws-redshift-clustersecuritygroup.json", + "aws-ecr-pullthroughcacherule.json", + "aws-glue-mltransform.json", + "aws-datasync-locationefs.json", + "aws-elasticloadbalancingv2-targetgroup.json", + "aws-applicationautoscaling-scalingpolicy.json", + "aws-pipes-pipe.json", + "aws-cloudformation-macro.json", + "aws-lambda-layerversionpermission.json", + "aws-secretsmanager-secret.json", + "aws-elasticache-user.json", + "aws-logs-subscriptionfilter.json", + "aws-codedeploy-application.json", + "aws-lakeformation-principalpermissions.json", + "aws-datasync-locations3.json", + "aws-autoscaling-lifecyclehook.json", + "aws-fsx-datarepositoryassociation.json", + "aws-appsync-resolver.json", + "aws-controltower-landingzone.json", + "aws-route53resolver-resolverqueryloggingconfigassociation.json", + "aws-imagebuilder-lifecyclepolicy.json", + "aws-lambda-eventinvokeconfig.json", + "aws-lambda-layerversion.json", + "aws-rds-optiongroup.json", + "aws-opsworks-userprofile.json", + "aws-ssm-maintenancewindow.json", + "aws-lakeformation-tagassociation.json", + "aws-ec2-ipamresourcediscovery.json", + "aws-imagebuilder-infrastructureconfiguration.json", + "aws-route53resolver-resolverendpoint.json", + "aws-ec2-subnetnetworkaclassociation.json", + "aws-servicecatalog-serviceaction.json", + "aws-iam-userpolicy.json", + "aws-cloudfront-originaccesscontrol.json", + "aws-secretsmanager-rotationschedule.json", + "aws-eks-identityproviderconfig.json", + "aws-ec2-ipamresourcediscoveryassociation.json", + "aws-servicecatalogappregistry-attributegroup.json", + "aws-ec2-egressonlyinternetgateway.json", + "aws-ec2-vpccidrblock.json", + "aws-acmpca-certificateauthority.json", + "aws-athena-preparedstatement.json", + "aws-autoscaling-scheduledaction.json", + "aws-lakeformation-resource.json", + "aws-ec2-ipamscope.json", + "aws-rds-eventsubscription.json", + "aws-config-aggregationauthorization.json", + "aws-datasync-agent.json", + "aws-logs-loggroup.json", + "aws-pcaconnectorad-template.json", + "aws-ec2-placementgroup.json", + "aws-organizations-account.json", + "aws-ecr-repository.json", + "aws-appconfig-extension.json", + "aws-elasticloadbalancingv2-truststore.json", + "aws-ec2-keypair.json", + "aws-ec2-eipassociation.json", + "aws-ec2-capacityreservation.json", + "aws-elasticloadbalancing-loadbalancer.json", + "aws-transfer-user.json", + "aws-iam-rolepolicy.json", + "aws-stepfunctions-statemachine.json", + "aws-rds-dbclusterparametergroup.json", + "aws-scheduler-schedulegroup.json", + "aws-eventschemas-registrypolicy.json", + "aws-route53-keysigningkey.json", + "aws-eventschemas-registry.json", + "aws-events-connection.json", + "aws-athena-datacatalog.json", + "aws-glue-workflow.json", + "aws-ec2-prefixlist.json", + "aws-ec2-instance.json", + "aws-ec2-subnetcidrblock.json", + "aws-waf-sqlinjectionmatchset.json", + "aws-ec2-transitgatewayvpcattachment.json", + "aws-ec2-flowlog.json", + "aws-amazonmq-broker.json", + "aws-emr-step.json", + "aws-ssm-association.json", + "aws-cloudfront-responseheaderspolicy.json", + "aws-securityhub-automationrule.json", + "aws-msk-clusterpolicy.json", + "aws-kms-alias.json", + "aws-xray-samplingrule.json", + "aws-transfer-connector.json", + "aws-wafv2-webaclassociation.json", + "aws-oam-sink.json", + "aws-acmpca-certificate.json", + "aws-ec2-ipamallocation.json", + "aws-workspaces-workspace.json", + "aws-ec2-instanceconnectendpoint.json", + "aws-appsync-sourceapiassociation.json", + "aws-datasync-locationobjectstorage.json", + "aws-ecs-capacityprovider.json", + "aws-elasticache-cachecluster.json", + "aws-sagemaker-modelcard.json", + "aws-logs-destination.json", + "aws-eks-nodegroup.json", + "aws-organizations-organizationalunit.json", + "aws-appsync-datasource.json", + "aws-sqs-queue.json", + "aws-ec2-securitygroupingress.json", + "aws-guardduty-detector.json", + "aws-batch-computeenvironment.json", + "aws-athena-namedquery.json", + "aws-lakeformation-datalakesettings.json", + "aws-rds-dbsecuritygroup.json", + "aws-cloudwatch-metricstream.json", + "aws-ssm-parameter.json", + "aws-config-deliverychannel.json", + "aws-iam-oidcprovider.json", + "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", + "aws-servicecatalogappregistry-resourceassociation.json", + "aws-cloudformation-stack.json", + "aws-resourcegroups-group.json", + "aws-cloudformation-resourcedefaultversion.json", + "aws-backup-restoretestingplan.json", + "aws-ec2-ipam.json", + "aws-pcaconnectorad-templategroupaccesscontrolentry.json", + "aws-ec2-transitgatewaypeeringattachment.json", + "aws-cloudfront-cachepolicy.json", + "aws-rds-dbsubnetgroup.json", + "aws-amazonmq-configuration.json", + "aws-accessanalyzer-analyzer.json", + "aws-ec2-ec2fleet.json", + "aws-servicecatalog-cloudformationproduct.json", + "aws-ec2-vpcendpointservice.json", + "aws-iam-managedpolicy.json", + "aws-ec2-launchtemplate.json", + "aws-cloudfront-originrequestpolicy.json", + "aws-datasync-locationfsxontap.json", + "aws-pcaconnectorad-serviceprincipalname.json", + "aws-lambda-version.json", + "aws-ec2-dhcpoptions.json", + "aws-ec2-ipampool.json", + "aws-iam-servicelinkedrole.json", + "aws-cloudformation-hooktypeconfig.json", + "aws-ec2-volume.json", + "aws-verifiedpermissions-policy.json", + "aws-cloudformation-resourceversion.json", + "aws-chatbot-microsoftteamschannelconfiguration.json", + "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", + "aws-s3-accesspoint.json", + "aws-batch-jobqueue.json", + "aws-elasticloadbalancingv2-listener.json", + "aws-cloudformation-waitconditionhandle.json", + "aws-globalaccelerator-accelerator.json", + "aws-eks-addon.json", +] diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-amazonmq-configurationassociation.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-amazonmq-configurationassociation.json new file mode 100644 index 0000000000..2a5ccb1b3b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-amazonmq-configurationassociation.json @@ -0,0 +1,47 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Broker" + ], + "definitions": { + "ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Revision": { + "type": "integer" + } + }, + "required": [ + "Revision", + "Id" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Broker": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/ConfigurationId" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Broker", + "Configuration" + ], + "typeName": "AWS::AmazonMQ::ConfigurationAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-account.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-account.json new file mode 100644 index 0000000000..2fb72e9114 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-account.json @@ -0,0 +1,19 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::ApiGateway::Account", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CloudWatchRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::Account" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-apikey.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-apikey.json new file mode 100644 index 0000000000..bbc59b7abb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-apikey.json @@ -0,0 +1,83 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/GenerateDistinctId", + "/properties/Value" + ], + "definitions": { + "StageKey": { + "additionalProperties": false, + "properties": { + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ApiKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "GenerateDistinctId": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StageKeys": { + "items": { + "$ref": "#/definitions/StageKey" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Value": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ApiKey" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-authorizer.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-authorizer.json new file mode 100644 index 0000000000..9f8245e3e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-authorizer.json @@ -0,0 +1,64 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Authorizer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AuthType": { + "type": "string" + }, + "AuthorizerCredentials": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "maximum": 3600, + "minimum": 0, + "type": "integer" + }, + "AuthorizerUri": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IdentitySource": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProviderARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "Type": { + "enum": [ + "TOKEN", + "REQUEST", + "COGNITO_USER_POOLS" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-basepathmapping.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-basepathmapping.json new file mode 100644 index 0000000000..366b329398 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-basepathmapping.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/BasePath", + "/properties/DomainName" + ], + "description": "Resource Type definition for AWS::ApiGateway::BasePathMapping", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BasePath": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::BasePathMapping" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-clientcertificate.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-clientcertificate.json new file mode 100644 index 0000000000..021bfd6a85 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-clientcertificate.json @@ -0,0 +1,44 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ClientCertificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ClientCertificate" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-deployment.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-deployment.json new file mode 100644 index 0000000000..70dba1a1c0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-deployment.json @@ -0,0 +1,220 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentCanarySettings", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "DeploymentCanarySettings": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "StageDescription": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "MetricsEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Deployment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DeploymentCanarySettings": { + "$ref": "#/definitions/DeploymentCanarySettings" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StageDescription": { + "$ref": "#/definitions/StageDescription" + }, + "StageName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Deployment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-documentationpart.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-documentationpart.json new file mode 100644 index 0000000000..c387182671 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-documentationpart.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Location", + "/properties/RestApiId" + ], + "definitions": { + "Location": { + "additionalProperties": false, + "properties": { + "Method": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "StatusCode": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DocumentationPart", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/Location" + }, + "Properties": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId", + "Properties", + "Location" + ], + "typeName": "AWS::ApiGateway::DocumentationPart" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-documentationversion.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-documentationversion.json new file mode 100644 index 0000000000..6c3162fd9b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-documentationversion.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DocumentationVersion", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::DocumentationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DocumentationVersion", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::DocumentationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-domainname.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-domainname.json new file mode 100644 index 0000000000..c571bde8c2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-domainname.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DomainName", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CertificateArn": { + "type": "string" + }, + "DistributionDomainName": { + "type": "string" + }, + "DistributionHostedZoneId": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "Id": { + "type": "string" + }, + "RegionalCertificateArn": { + "type": "string" + }, + "RegionalDomainName": { + "type": "string" + }, + "RegionalHostedZoneId": { + "type": "string" + }, + "SecurityPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/DistributionDomainName", + "/properties/RegionalDomainName", + "/properties/Id", + "/properties/DistributionHostedZoneId", + "/properties/RegionalHostedZoneId" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::DomainName" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-gatewayresponse.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-gatewayresponse.json new file mode 100644 index 0000000000..13fa8c2dba --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-gatewayresponse.json @@ -0,0 +1,72 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResponseType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::GatewayResponse", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "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": [ + "RestApiId", + "ResponseType" + ], + "typeName": "AWS::ApiGateway::GatewayResponse" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-method.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-method.json new file mode 100644 index 0000000000..c895cf0160 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-method.json @@ -0,0 +1,208 @@ +{ + "additionalProperties": false, + "definitions": { + "Integration": { + "additionalProperties": false, + "properties": { + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CacheNamespace": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandling": { + "type": "string" + }, + "Credentials": { + "type": "string" + }, + "IntegrationHttpMethod": { + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/IntegrationResponse" + }, + "type": "array", + "uniqueItems": true + }, + "PassthroughBehavior": { + "type": "string" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "Type": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, + "IntegrationResponse": { + "additionalProperties": false, + "properties": { + "ContentHandling": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "SelectionPattern": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "MethodResponse": { + "additionalProperties": false, + "properties": { + "ResponseModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Method", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/MethodResponse" + }, + "type": "array", + "uniqueItems": true + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "RequestValidatorId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResourceId", + "RestApiId", + "HttpMethod" + ], + "typeName": "AWS::ApiGateway::Method" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-model.json new file mode 100644 index 0000000000..f93e5b8eb8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-model.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/ContentType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Model", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Schema": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Model" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-requestvalidator.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-requestvalidator.json new file mode 100644 index 0000000000..65d76759ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-requestvalidator.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::RequestValidator", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "ValidateRequestBody": { + "type": "boolean" + }, + "ValidateRequestParameters": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::RequestValidator" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-resource.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-resource.json new file mode 100644 index 0000000000..d99746d395 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-resource.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PathPart", + "/properties/ParentId", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Resource", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "PathPart": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParentId", + "PathPart", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Resource" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-restapi.json new file mode 100644 index 0000000000..857b4a9c90 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-restapi.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::RestApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeySourceType": { + "enum": [ + "HEADER", + "AUTHORIZER" + ], + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Body": { + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "MinimumCompressionSize": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "type": "object" + }, + "RootResourceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/RootResourceId" + ], + "typeName": "AWS::ApiGateway::RestApi" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-stage.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-stage.json new file mode 100644 index 0000000000..715adbbabd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-stage.json @@ -0,0 +1,167 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StageName", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "DeploymentId": { + "type": "string" + }, + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Stage", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DeploymentId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Stage" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-usageplan.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-usageplan.json new file mode 100644 index 0000000000..73b66424f8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-usageplan.json @@ -0,0 +1,107 @@ +{ + "additionalProperties": false, + "definitions": { + "ApiStage": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "Throttle": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ThrottleSettings" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "QuotaSettings": { + "additionalProperties": false, + "properties": { + "Limit": { + "type": "integer" + }, + "Offset": { + "type": "integer" + }, + "Period": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "ThrottleSettings": { + "additionalProperties": false, + "properties": { + "BurstLimit": { + "type": "integer" + }, + "RateLimit": { + "type": "number" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::UsagePlan", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiStages": { + "items": { + "$ref": "#/definitions/ApiStage" + }, + "type": "array", + "uniqueItems": true + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Quota": { + "$ref": "#/definitions/QuotaSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throttle": { + "$ref": "#/definitions/ThrottleSettings" + }, + "UsagePlanName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::UsagePlan" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-usageplankey.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-usageplankey.json new file mode 100644 index 0000000000..6454c66f61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-usageplankey.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyType", + "/properties/UsagePlanId", + "/properties/KeyId" + ], + "description": "Resource Type definition for AWS::ApiGateway::UsagePlanKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "KeyId": { + "type": "string" + }, + "KeyType": { + "enum": [ + "API_KEY" + ], + "type": "string" + }, + "UsagePlanId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "KeyType", + "UsagePlanId", + "KeyId" + ], + "typeName": "AWS::ApiGateway::UsagePlanKey" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-vpclink.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-vpclink.json new file mode 100644 index 0000000000..019f5635d9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-vpclink.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetArns" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::VpcLink", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TargetArns", + "Name" + ], + "typeName": "AWS::ApiGateway::VpcLink" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-appsync-graphqlapi.json similarity index 100% rename from src/cfnlint/data/schemas/providers/us_east_2/aws-appsync-graphqlapi.json rename to src/cfnlint/data/schemas/providers/eu_south_2/aws-appsync-graphqlapi.json diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-autoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-autoscaling-scalingpolicy.json new file mode 100644 index 0000000000..e2d74dd76a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-autoscaling-scalingpolicy.json @@ -0,0 +1,468 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AutoScalingGroupName" + ], + "definitions": { + "CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "enum": [ + "Average", + "Minimum", + "Maximum", + "SampleCount", + "Sum" + ], + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Statistic", + "Namespace" + ], + "type": "object" + }, + "Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDimension" + }, + "type": "array", + "uniqueItems": true + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "MetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/MetricStat" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Name" + ], + "type": "object" + }, + "MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/Metric" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Stat", + "Metric" + ], + "type": "object" + }, + "PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "enum": [ + "ASGAverageCPUUtilization", + "ASGAverageNetworkIn", + "ASGAverageNetworkOut", + "ALBRequestCountPerTarget" + ], + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacityBreachBehavior": { + "type": "string" + }, + "MaxCapacityBuffer": { + "type": "integer" + }, + "MetricSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/PredictiveScalingMetricSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Mode": { + "type": "string" + }, + "SchedulingBufferTime": { + "type": "integer" + } + }, + "required": [ + "MetricSpecifications" + ], + "type": "object" + }, + "PredictiveScalingCustomizedCapacityMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedLoadMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingCustomizedScalingMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/MetricDataQuery" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "PredictiveScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "CustomizedCapacityMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedCapacityMetric" + }, + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedLoadMetric" + }, + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingCustomizedScalingMetric" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedLoadMetric" + }, + "PredefinedMetricPairSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedMetricPair" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/PredictiveScalingPredefinedScalingMetric" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "PredictiveScalingPredefinedLoadMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedMetricPair": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "PredictiveScalingPredefinedScalingMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "StepAdjustment": { + "additionalProperties": false, + "insertionOrder": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "integer" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/PredefinedMetricSpecification" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + } + }, + "description": "The AWS::AutoScaling::ScalingPolicy resource specifies an Amazon EC2 Auto Scaling scaling policy so that the Auto Scaling group can scale the number of instances available for your application.", + "handlers": { + "create": { + "permissions": [ + "autoscaling:DescribePolicies", + "autoscaling:PutScalingPolicy" + ] + }, + "delete": { + "permissions": [ + "autoscaling:DeletePolicy", + "autoscaling:DescribePolicies" + ] + }, + "list": { + "permissions": [ + "autoscaling:DescribePolicies" + ] + }, + "read": { + "permissions": [ + "autoscaling:DescribePolicies" + ] + }, + "update": { + "permissions": [ + "autoscaling:DescribePolicies", + "autoscaling:PutScalingPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "AdjustmentType": { + "description": "Specifies how the scaling adjustment is interpreted. The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.", + "enum": [ + "ChangeInCapacity", + "ExactCapacity", + "PercentChangeInCapacity" + ], + "type": "string" + }, + "Arn": { + "description": "The ARN of the AutoScaling scaling policy", + "type": "string" + }, + "AutoScalingGroupName": { + "description": "The name of the Auto Scaling group.", + "type": "string" + }, + "Cooldown": { + "description": "The duration of the policy's cooldown period, in seconds. When a cooldown period is specified here, it overrides the default cooldown period defined for the Auto Scaling group.", + "type": "string" + }, + "EstimatedInstanceWarmup": { + "description": "The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. If not provided, the default is to use the value from the default cooldown period for the Auto Scaling group. Valid only if the policy type is TargetTrackingScaling or StepScaling.", + "type": "integer" + }, + "MetricAggregationType": { + "description": "The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average. Valid only if the policy type is StepScaling.", + "enum": [ + "Average", + "Maximum", + "Minimum" + ], + "type": "string" + }, + "MinAdjustmentMagnitude": { + "description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a MinAdjustmentMagnitude of 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.", + "type": "integer" + }, + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "description": "One of the following policy types: TargetTrackingScaling, StepScaling, SimpleScaling (default), PredictiveScaling", + "enum": [ + "PredictiveScaling", + "SimpleScaling", + "StepScaling", + "TargetTrackingScaling" + ], + "type": "string" + }, + "PredictiveScalingConfiguration": { + "$ref": "#/definitions/PredictiveScalingConfiguration", + "description": "A predictive scaling policy. Includes support for predefined metrics only." + }, + "ScalingAdjustment": { + "description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. Required if the policy type is SimpleScaling. (Not used with any other policy type.)", + "type": "integer" + }, + "StepAdjustments": { + "description": "A set of adjustments that enable you to scale based on the size of the alarm breach. Required if the policy type is StepScaling. (Not used with any other policy type.)", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/StepAdjustment" + }, + "type": "array", + "uniqueItems": true + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/TargetTrackingConfiguration", + "description": "A target tracking scaling policy. Includes support for predefined or customized metrics." + } + }, + "readOnlyProperties": [ + "/properties/PolicyName", + "/properties/Arn" + ], + "required": [ + "AutoScalingGroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-autoscaling.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::AutoScaling::ScalingPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-cloudformation-waitcondition.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-cloudformation-waitcondition.json new file mode 100644 index 0000000000..822d109c45 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-cloudformation-waitcondition.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::CloudFormation::WaitCondition", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Count": { + "type": "integer" + }, + "Data": { + "type": "object" + }, + "Handle": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Timeout": { + "maximum": 43200, + "minimum": 0, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Data" + ], + "typeName": "AWS::CloudFormation::WaitCondition" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-codepipeline-customactiontype.json new file mode 100644 index 0000000000..6ab4bff7bf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-codepipeline-customactiontype.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigurationProperties", + "/properties/OutputArtifactDetails", + "/properties/Version", + "/properties/InputArtifactDetails", + "/properties/Settings", + "/properties/Provider", + "/properties/Category" + ], + "definitions": { + "ArtifactDetails": { + "additionalProperties": false, + "properties": { + "MaximumCount": { + "type": "integer" + }, + "MinimumCount": { + "type": "integer" + } + }, + "required": [ + "MinimumCount", + "MaximumCount" + ], + "type": "object" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Key": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { + "enum": [ + "String", + "Number", + "Boolean" + ], + "type": "string" + } + }, + "required": [ + "Secret", + "Required", + "Key", + "Name" + ], + "type": "object" + }, + "Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodePipeline::CustomActionType", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { + "items": { + "$ref": "#/definitions/ConfigurationProperties" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "Provider": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/Settings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Category", + "InputArtifactDetails", + "Version", + "OutputArtifactDetails", + "Provider" + ], + "typeName": "AWS::CodePipeline::CustomActionType" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-datapipeline-pipeline.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-datapipeline-pipeline.json new file mode 100644 index 0000000000..d2d735d9b1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-datapipeline-pipeline.json @@ -0,0 +1,173 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "StringValue", + "Key" + ], + "type": "object" + }, + "ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/ParameterAttribute" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/Field" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DataPipeline::Pipeline", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/ParameterObject" + }, + "type": "array", + "uniqueItems": false + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/ParameterValue" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/PipelineObject" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/PipelineTag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParameterObjects", + "Name" + ], + "typeName": "AWS::DataPipeline::Pipeline" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-directoryservice-microsoftad.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-directoryservice-microsoftad.json new file mode 100644 index 0000000000..2ff7abecf1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-directoryservice-microsoftad.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcSettings", + "/properties/Edition", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::MicrosoftAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Edition": { + "enum": [ + "Enterprise", + "Standard" + ], + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::MicrosoftAD" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-directoryservice-simplead.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-directoryservice-simplead.json new file mode 100644 index 0000000000..7646d8ecbe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-directoryservice-simplead.json @@ -0,0 +1,93 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Size", + "/properties/VpcSettings", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/Description", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::SimpleAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "enum": [ + "Small", + "Large" + ], + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Size", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::SimpleAD" +} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-customergateway.json new file mode 100644 index 0000000000..fb66d92fc4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-customergateway.json @@ -0,0 +1,63 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/IpAddress", + "/properties/BgpAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CustomerGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BgpAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "IpAddress", + "BgpAsn" + ], + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-eip.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-eip.json new file mode 100644 index 0000000000..1b598ecc17 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-eip.json @@ -0,0 +1,65 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Domain", + "/properties/NetworkBorderGroup" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::EIP", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllocationId": { + "type": "string" + }, + "Domain": { + "enum": [ + "vpc", + "standard" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkBorderGroup": { + "type": "string" + }, + "PublicIpv4Pool": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/AllocationId" + ], + "typeName": "AWS::EC2::EIP" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json new file mode 100644 index 0000000000..30e7b5c2d0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-host.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceType", + "/properties/AvailabilityZone" + ], + "description": "Resource Type definition for AWS::EC2::Host", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoPlacement": { + "enum": [ + "on", + "off" + ], + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "HostRecovery": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone", + "InstanceType" + ], + "typeName": "AWS::EC2::Host" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkinterface.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkinterface.json new file mode 100644 index 0000000000..d265a3421d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkinterface.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PrivateIpAddress", + "/properties/InterfaceType", + "/properties/SubnetId" + ], + "definitions": { + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::NetworkInterface", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InterfaceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "PrimaryPrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SecondaryPrivateIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecondaryPrivateIpAddresses", + "/properties/PrimaryPrivateIpAddress" + ], + "required": [ + "SubnetId" + ], + "typeName": "AWS::EC2::NetworkInterface" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkinterfacepermission.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkinterfacepermission.json new file mode 100644 index 0000000000..f16f086ec1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-networkinterfacepermission.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/Permission", + "/properties/NetworkInterfaceId" + ], + "description": "Resource Type definition for AWS::EC2::NetworkInterfacePermission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AwsAccountId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "Permission": { + "enum": [ + "INSTANCE-ATTACH", + "EIP-ASSOCIATE" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AwsAccountId", + "Permission", + "NetworkInterfaceId" + ], + "typeName": "AWS::EC2::NetworkInterfacePermission" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-spotfleet.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-spotfleet.json new file mode 100644 index 0000000000..6e41574e03 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-spotfleet.json @@ -0,0 +1,1072 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SpotFleetRequestConfigData/AllocationStrategy", + "/properties/SpotFleetRequestConfigData/IamFleetRole", + "/properties/SpotFleetRequestConfigData/InstanceInterruptionBehavior", + "/properties/SpotFleetRequestConfigData/InstancePoolsToUseCount", + "/properties/SpotFleetRequestConfigData/LaunchSpecifications", + "/properties/SpotFleetRequestConfigData/LaunchTemplateConfigs", + "/properties/SpotFleetRequestConfigData/LoadBalancersConfig", + "/properties/SpotFleetRequestConfigData/OnDemandAllocationStrategy", + "/properties/SpotFleetRequestConfigData/OnDemandMaxTotalPrice", + "/properties/SpotFleetRequestConfigData/OnDemandTargetCapacity", + "/properties/SpotFleetRequestConfigData/ReplaceUnhealthyInstances", + "/properties/SpotFleetRequestConfigData/SpotMaintenanceStrategies", + "/properties/SpotFleetRequestConfigData/SpotMaxTotalPrice", + "/properties/SpotFleetRequestConfigData/SpotPrice", + "/properties/SpotFleetRequestConfigData/TagSpecifications", + "/properties/SpotFleetRequestConfigData/TerminateInstancesWithExpiration", + "/properties/SpotFleetRequestConfigData/Type", + "/properties/SpotFleetRequestConfigData/ValidFrom", + "/properties/SpotFleetRequestConfigData/ValidUntil" + ], + "definitions": { + "AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/ClassicLoadBalancer" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "maxLength": 128, + "minLength": 3, + "pattern": "[a-zA-Z0-9\\(\\)\\.\\-/_]+", + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "integer" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "enum": [ + "nvidia", + "amd", + "amazon-web-services", + "xilinx" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AcceleratorNames": { + "items": { + "enum": [ + "a100", + "v100", + "k80", + "t4", + "m60", + "radeon-pro-v520", + "vu9p", + "inferentia", + "k520" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "enum": [ + "gpu", + "fpga", + "inference" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "AllowedInstanceTypes": { + "items": { + "maxLength": 30, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\.\\*]+", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "BareMetal": { + "enum": [ + "included", + "required", + "excluded" + ], + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "enum": [ + "included", + "required", + "excluded" + ], + "type": "string" + }, + "CpuManufacturers": { + "items": { + "enum": [ + "intel", + "amd", + "amazon-web-services" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ExcludedInstanceTypes": { + "items": { + "maxLength": 30, + "minLength": 1, + "pattern": "[a-zA-Z0-9\\.\\*]+", + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "InstanceGenerations": { + "items": { + "enum": [ + "current", + "previous" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "LocalStorage": { + "enum": [ + "included", + "required", + "excluded" + ], + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "enum": [ + "hdd", + "ssd" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/MemoryMiBRequest" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/NetworkBandwidthGbpsRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "integer" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/VCpuCountRangeRequest" + } + }, + "type": "object" + }, + "LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/FleetLaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/LaunchTemplateOverrides" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirementsRequest" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/TargetGroupsConfig" + } + }, + "type": "object" + }, + "MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "SpotCapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "enum": [ + "launch", + "launch-before-terminate" + ], + "type": "string" + }, + "TerminationDelay": { + "type": "integer" + } + }, + "type": "object" + }, + "SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "default": false, + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/IamInstanceProfileSpecification" + }, + "ImageId": { + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/InstanceRequirementsRequest" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/SpotFleetMonitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/InstanceNetworkInterfaceSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "Placement": { + "$ref": "#/definitions/SpotPlacement" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/GroupIdentifier" + }, + "type": "array", + "uniqueItems": true + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetTagSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "UserData": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "ImageId" + ], + "type": "object" + }, + "SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "default": false, + "type": "boolean" + } + }, + "type": "object" + }, + "SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "enum": [ + "capacityOptimized", + "capacityOptimizedPrioritized", + "diversified", + "lowestPrice", + "priceCapacityOptimized" + ], + "type": "string" + }, + "Context": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "enum": [ + "Default", + "NoTermination", + "default", + "noTermination" + ], + "type": "string" + }, + "IamFleetRole": { + "awsType": "IamRoleArn", + "type": "string" + }, + "InstanceInterruptionBehavior": { + "enum": [ + "hibernate", + "stop", + "terminate" + ], + "type": "string" + }, + "InstancePoolsToUseCount": { + "type": "integer" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetLaunchSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/LaunchTemplateConfig" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/LoadBalancersConfig" + }, + "OnDemandAllocationStrategy": { + "type": "string" + }, + "OnDemandMaxTotalPrice": { + "type": "string" + }, + "OnDemandTargetCapacity": { + "type": "integer" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotMaintenanceStrategies": { + "$ref": "#/definitions/SpotMaintenanceStrategies" + }, + "SpotMaxTotalPrice": { + "type": "string" + }, + "SpotPrice": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/SpotFleetTagSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "TargetCapacity": { + "type": "integer" + }, + "TargetCapacityUnitType": { + "enum": [ + "vcpu", + "memory-mib", + "units" + ], + "type": "string" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "enum": [ + "maintain", + "request" + ], + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { + "type": "string" + } + }, + "required": [ + "IamFleetRole", + "TargetCapacity" + ], + "type": "object" + }, + "SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "enum": [ + "client-vpn-endpoint", + "customer-gateway", + "dedicated-host", + "dhcp-options", + "egress-only-internet-gateway", + "elastic-gpu", + "elastic-ip", + "export-image-task", + "export-instance-task", + "fleet", + "fpga-image", + "host-reservation", + "image", + "import-image-task", + "import-snapshot-task", + "instance", + "internet-gateway", + "key-pair", + "launch-template", + "local-gateway-route-table-vpc-association", + "natgateway", + "network-acl", + "network-insights-analysis", + "network-insights-path", + "network-interface", + "placement-group", + "reserved-instances", + "route-table", + "security-group", + "snapshot", + "spot-fleet-request", + "spot-instances-request", + "subnet", + "traffic-mirror-filter", + "traffic-mirror-session", + "traffic-mirror-target", + "transit-gateway", + "transit-gateway-attachment", + "transit-gateway-connect-peer", + "transit-gateway-multicast-domain", + "transit-gateway-route-table", + "volume", + "vpc", + "vpc-flow-log", + "vpc-peering-connection", + "vpn-connection", + "vpn-gateway" + ], + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "SpotMaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/SpotCapacityRebalance" + } + }, + "type": "object" + }, + "SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Tenancy": { + "enum": [ + "dedicated", + "default", + "host" + ], + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/TargetGroup" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + }, + "TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "integer" + }, + "Min": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::SpotFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:RequestSpotFleet", + "ec2:DescribeSpotFleetRequests" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSpotFleetRequests", + "ec2:CancelSpotFleetRequests" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSpotFleetRequests" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSpotFleetRequests" + ] + }, + "update": { + "permissions": [ + "ec2:ModifySpotFleetRequest", + "ec2:DescribeSpotFleetRequests" + ] + } + }, + "oneOf": [ + { + "properties": { + "LaunchTemplateConfigs": false + }, + "required": [ + "LaunchSpecifications" + ], + "type": "object" + }, + { + "properties": { + "LaunchSpecifications": false + }, + "required": [ + "LaunchTemplateConfigs" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['LaunchSpecifications', 'LaunchTemplateConfigs']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/SpotFleetRequestConfigData" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SpotFleetRequestConfigData" + ], + "typeName": "AWS::EC2::SpotFleet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-transitgatewayattachment.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-transitgatewayattachment.json new file mode 100644 index 0000000000..47b853e538 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-transitgatewayattachment.json @@ -0,0 +1,157 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/VpcId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::TransitGatewayAttachment", + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "description": "The options for the transit gateway vpc attachment.", + "properties": { + "ApplianceModeSupport": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "DnsSupport": { + "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "Ipv6Support": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + } + }, + "type": "object" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "SubnetIds", + "TransitGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpcendpoint.json new file mode 100644 index 0000000000..c3678aa75e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpcendpoint.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/ServiceName" + ], + "description": "Resource Type definition for AWS::EC2::VPCEndpoint", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "ServiceName" + ], + "typeName": "AWS::EC2::VPCEndpoint" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnection.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnection.json new file mode 100644 index 0000000000..1eadcb5ca9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnection.json @@ -0,0 +1,87 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/Type", + "/properties/CustomerGatewayId", + "/properties/StaticRoutesOnly", + "/properties/VpnGatewayId", + "/properties/VpnTunnelOptionsSpecifications" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNConnection", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerGatewayId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/VpnTunnelOptionsSpecification" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "CustomerGatewayId" + ], + "typeName": "AWS::EC2::VPNConnection" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnectionroute.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnectionroute.json new file mode 100644 index 0000000000..937c564bf6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpnconnectionroute.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DestinationCidrBlock", + "/properties/VpnConnectionId" + ], + "description": "Resource Type definition for AWS::EC2::VPNConnectionRoute", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DestinationCidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], + "typeName": "AWS::EC2::VPNConnectionRoute" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..75dbfb349e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpngateway.json @@ -0,0 +1,54 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/AmazonSideAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonSideAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecr-registrypolicy.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecr-registrypolicy.json new file mode 100644 index 0000000000..5ec89ffc01 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecr-registrypolicy.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "definitions": { + "RegistryId": { + "description": "The registry id.", + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + } + }, + "description": "The AWS::ECR::RegistryPolicy is used to specify permissions for another AWS account and is used when configuring cross-account replication. For more information, see Registry permissions in the Amazon Elastic Container Registry User Guide: https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html", + "handlers": { + "create": { + "permissions": [ + "ecr:PutRegistryPolicy" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRegistryPolicy" + ] + }, + "list": { + "permissions": [ + "ecr:GetRegistryPolicy" + ] + }, + "read": { + "permissions": [ + "ecr:GetRegistryPolicy" + ] + }, + "update": { + "permissions": [ + "ecr:PutRegistryPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/RegistryId" + ], + "properties": { + "PolicyText": { + "description": "The JSON policy text to apply to your registry. The policy text follows the same format as IAM policy text. For more information, see Registry permissions (https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html) in the Amazon Elastic Container Registry User Guide.", + "type": "object" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "readOnlyProperties": [ + "/properties/RegistryId" + ], + "required": [ + "PolicyText" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "typeName": "AWS::ECR::RegistryPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-cluster.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-cluster.json new file mode 100644 index 0000000000..eee698bbc5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ecs-cluster.json @@ -0,0 +1,199 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterName" + ], + "definitions": { + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "description": "A capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used.", + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "ClusterConfiguration": { + "additionalProperties": false, + "description": "The configurations to be set at cluster level.", + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/ExecuteCommandConfiguration" + } + }, + "type": "object" + }, + "ClusterSettings": { + "additionalProperties": false, + "description": "The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandConfiguration": { + "additionalProperties": false, + "description": "The configuration for ExecuteCommand.", + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "description": "The session logging configuration for ExecuteCommand.", + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectDefaults": { + "additionalProperties": false, + "description": "Service Connect Configuration default for all services or tasks within this cluster", + "properties": { + "Namespace": { + "description": "Service Connect Namespace Name or ARN default for all services or tasks within this cluster", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Create an Elastic Container Service (ECS) cluster.", + "handlers": { + "create": { + "permissions": [ + "ecs:CreateCluster", + "ecs:DescribeClusters", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteCluster", + "ecs:DescribeClusters" + ] + }, + "list": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:ListClusters" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeClusters" + ] + }, + "update": { + "permissions": [ + "ecs:PutAccountSettingDefault", + "ecs:DescribeClusters", + "ecs:TagResource", + "ecs:UntagResource", + "ecs:PutAccountSetting", + "ecs:ListTagsForResource", + "ecs:UpdateCluster", + "ecs:UpdateClusterSettings", + "ecs:PutClusterCapacityProviders" + ] + } + }, + "primaryIdentifier": [ + "/properties/ClusterName" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Amazon ECS cluster, such as arn:aws:ecs:us-east-2:123456789012:cluster/MyECSCluster.", + "type": "string" + }, + "CapacityProviders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterName": { + "description": "A user-generated string that you use to identify your cluster. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name.", + "type": "string" + }, + "ClusterSettings": { + "items": { + "$ref": "#/definitions/ClusterSettings" + }, + "type": "array" + }, + "Configuration": { + "$ref": "#/definitions/ClusterConfiguration" + }, + "DefaultCapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "ServiceConnectDefaults": { + "$ref": "#/definitions/ServiceConnectDefaults" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::ECS::Cluster", + "writeOnlyProperties": [ + "/properties/ServiceConnectDefaults" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticache-subnetgroup.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticache-subnetgroup.json new file mode 100644 index 0000000000..80ce070829 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticache-subnetgroup.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CacheSubnetGroupName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElastiCache::SubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::ElastiCache::SubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-application.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-application.json new file mode 100644 index 0000000000..b613aba6c6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-application.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName" + ], + "definitions": { + "ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/MaxCountRule" + } + }, + "type": "object" + }, + "MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "integer" + } + }, + "type": "object" + }, + "MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Application", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/ApplicationResourceLifecycleConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ElasticBeanstalk::Application" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-applicationversion.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-applicationversion.json new file mode 100644 index 0000000000..1b3a2845a4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-applicationversion.json @@ -0,0 +1,51 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/SourceBundle" + ], + "definitions": { + "SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/SourceBundle" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "SourceBundle" + ], + "typeName": "AWS::ElasticBeanstalk::ApplicationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-configurationtemplate.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-configurationtemplate.json new file mode 100644 index 0000000000..bd1a025e3f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-configurationtemplate.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PlatformArn", + "/properties/ApplicationName", + "/properties/SolutionStackName", + "/properties/EnvironmentId", + "/properties/SourceConfiguration" + ], + "definitions": { + "ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/ConfigurationOptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/SourceConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::ConfigurationTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-environment.json new file mode 100644 index 0000000000..ad67522d06 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticbeanstalk-environment.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CNAMEPrefix", + "/properties/EnvironmentName", + "/properties/ApplicationName", + "/properties/SolutionStackName" + ], + "definitions": { + "OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Environment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EndpointURL": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OperationsRole": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/OptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/EndpointURL" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::Environment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-listenerrule.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-listenerrule.json new file mode 100644 index 0000000000..0afd31c630 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-listenerrule.json @@ -0,0 +1,386 @@ +{ + "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": { + "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": { + "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" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "required": [ + "TokenEndpoint", + "Issuer", + "ClientSecret", + "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" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerRule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": true + }, + "Conditions": { + "items": { + "$ref": "#/definitions/RuleCondition" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "ListenerArn": { + "type": "string" + }, + "Priority": { + "maximum": 50000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ListenerArn", + "Actions", + "Priority", + "Conditions" + ], + "typeName": "AWS::ElasticLoadBalancingV2::ListenerRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..48793c4fbd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,184 @@ +{ + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::LoadBalancer", + "oneOf": [ + { + "properties": { + "Subnets": false + }, + "required": [ + "SubnetMappings" + ], + "type": "object" + }, + { + "properties": { + "SubnetMappings": false + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['SubnetMappings', 'Subnets']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/CanonicalHostedZoneID", + "/properties/Id", + "/properties/LoadBalancerFullName", + "/properties/DNSName" + ], + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-emr-securityconfiguration.json new file mode 100644 index 0000000000..1f55dfd600 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-emr-securityconfiguration.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/SecurityConfiguration" + ], + "description": "Resource Type definition for AWS::EMR::SecurityConfiguration", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecurityConfiguration" + ], + "typeName": "AWS::EMR::SecurityConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-alias.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-alias.json new file mode 100644 index 0000000000..a786ab0606 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-alias.json @@ -0,0 +1,49 @@ +{ + "additionalProperties": false, + "definitions": { + "RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Alias", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/RoutingStrategy" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RoutingStrategy", + "Name" + ], + "typeName": "AWS::GameLift::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-build.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-build.json new file mode 100644 index 0000000000..0d69550edf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-build.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StorageLocation", + "/properties/OperatingSystem" + ], + "definitions": { + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Build", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OperatingSystem": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/S3Location" + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::GameLift::Build" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-fleet.json new file mode 100644 index 0000000000..75d4906f55 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-gamelift-fleet.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PeerVpcAwsAccountId", + "/properties/BuildId", + "/properties/EC2InstanceType", + "/properties/ServerLaunchParameters", + "/properties/CertificateConfiguration", + "/properties/LogPaths", + "/properties/ServerLaunchPath", + "/properties/FleetType", + "/properties/ScriptId", + "/properties/PeerVpcId", + "/properties/InstanceRoleARN" + ], + "definitions": { + "CertificateConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateType": { + "type": "string" + } + }, + "required": [ + "CertificateType" + ], + "type": "object" + }, + "IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "IpRange", + "FromPort", + "ToPort", + "Protocol" + ], + "type": "object" + }, + "ResourceCreationLimitPolicy": { + "additionalProperties": false, + "properties": { + "NewGameSessionsPerCreator": { + "type": "integer" + }, + "PolicyPeriodInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "RuntimeConfiguration": { + "additionalProperties": false, + "properties": { + "GameSessionActivationTimeoutSeconds": { + "type": "integer" + }, + "MaxConcurrentGameSessionActivations": { + "type": "integer" + }, + "ServerProcesses": { + "items": { + "$ref": "#/definitions/ServerProcess" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ServerProcess": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutions": { + "type": "integer" + }, + "LaunchPath": { + "type": "string" + }, + "Parameters": { + "type": "string" + } + }, + "required": [ + "ConcurrentExecutions", + "LaunchPath" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Fleet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BuildId": { + "type": "string" + }, + "CertificateConfiguration": { + "$ref": "#/definitions/CertificateConfiguration" + }, + "Description": { + "type": "string" + }, + "DesiredEC2Instances": { + "type": "integer" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/IpPermission" + }, + "type": "array", + "uniqueItems": true + }, + "EC2InstanceType": { + "cfnRegionSchema": "aws_gamelift_fleet/ec2instancetype_enum", + "type": "string" + }, + "FleetType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceRoleARN": { + "type": "string" + }, + "LogPaths": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MaxSize": { + "type": "integer" + }, + "MetricGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MinSize": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "NewGameSessionProtectionPolicy": { + "type": "string" + }, + "PeerVpcAwsAccountId": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "ResourceCreationLimitPolicy": { + "$ref": "#/definitions/ResourceCreationLimitPolicy" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/RuntimeConfiguration" + }, + "ScriptId": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EC2InstanceType", + "Name" + ], + "typeName": "AWS::GameLift::Fleet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-datacatalogencryptionsettings.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-datacatalogencryptionsettings.json new file mode 100644 index 0000000000..94664d2615 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-glue-datacatalogencryptionsettings.json @@ -0,0 +1,67 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "ConnectionPasswordEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "ReturnConnectionPasswordEncrypted": { + "type": "boolean" + } + }, + "type": "object" + }, + "DataCatalogEncryptionSettings": { + "additionalProperties": false, + "properties": { + "ConnectionPasswordEncryption": { + "$ref": "#/definitions/ConnectionPasswordEncryption" + }, + "EncryptionAtRest": { + "$ref": "#/definitions/EncryptionAtRest" + } + }, + "type": "object" + }, + "EncryptionAtRest": { + "additionalProperties": false, + "properties": { + "CatalogEncryptionMode": { + "type": "string" + }, + "SseAwsKmsKeyId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Glue::DataCatalogEncryptionSettings", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DataCatalogEncryptionSettings": { + "$ref": "#/definitions/DataCatalogEncryptionSettings" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DataCatalogEncryptionSettings", + "CatalogId" + ], + "typeName": "AWS::Glue::DataCatalogEncryptionSettings" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-guardduty-master.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-guardduty-master.json new file mode 100644 index 0000000000..6a841839da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-guardduty-master.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InvitationId", + "/properties/DetectorId", + "/properties/MasterId" + ], + "description": "Resource Type definition for AWS::GuardDuty::Master", + "primaryIdentifier": [ + "/properties/MasterId" + ], + "properties": { + "DetectorId": { + "type": "string" + }, + "InvitationId": { + "type": "string" + }, + "MasterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/MasterId" + ], + "required": [ + "DetectorId", + "MasterId" + ], + "typeName": "AWS::GuardDuty::Master" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-accesskey.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-accesskey.json new file mode 100644 index 0000000000..eaf023abb9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-accesskey.json @@ -0,0 +1,40 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Serial", + "/properties/UserName" + ], + "description": "Resource Type definition for AWS::IAM::AccessKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretAccessKey": { + "type": "string" + }, + "Serial": { + "type": "integer" + }, + "Status": { + "enum": [ + "Active", + "Inactive" + ], + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecretAccessKey" + ], + "required": [ + "UserName" + ], + "typeName": "AWS::IAM::AccessKey" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-instanceprofile.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-instanceprofile.json new file mode 100644 index 0000000000..a0ff933e37 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-instanceprofile.json @@ -0,0 +1,43 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceProfileName", + "/properties/Path" + ], + "description": "Resource Type definition for AWS::IAM::InstanceProfile", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceProfileName": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Roles": { + "items": { + "pattern": "[a-zA-Z0-9+=,.@\\-_]+", + "type": "string" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Roles" + ], + "typeName": "AWS::IAM::InstanceProfile" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-certificate.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-certificate.json new file mode 100644 index 0000000000..1fdf158dd4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-certificate.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateSigningRequest" + ], + "description": "Resource Type definition for AWS::IoT::Certificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "CertificateSigningRequest": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "Status", + "CertificateSigningRequest" + ], + "typeName": "AWS::IoT::Certificate" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json new file mode 100644 index 0000000000..36682f62a0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyDocument", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::Policy", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "PolicyDocument" + ], + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policyprincipalattachment.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policyprincipalattachment.json new file mode 100644 index 0000000000..1e5d6a7348 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policyprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyName", + "Principal" + ], + "typeName": "AWS::IoT::PolicyPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-thing.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-thing.json new file mode 100644 index 0000000000..8bcc352f41 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-thing.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ThingName" + ], + "definitions": { + "AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IoT::Thing", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AttributePayload": { + "$ref": "#/definitions/AttributePayload" + }, + "Id": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::IoT::Thing" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-thingprincipalattachment.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-thingprincipalattachment.json new file mode 100644 index 0000000000..e527a23e87 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-thingprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/ThingName" + ], + "description": "Resource Type definition for AWS::IoT::ThingPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ThingName", + "Principal" + ], + "typeName": "AWS::IoT::ThingPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-topicrule.json new file mode 100644 index 0000000000..406a4e7eae --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-topicrule.json @@ -0,0 +1,618 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleName" + ], + "definitions": { + "Action": { + "additionalProperties": false, + "properties": { + "CloudwatchAlarm": { + "$ref": "#/definitions/CloudwatchAlarmAction" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/CloudwatchMetricAction" + }, + "DynamoDB": { + "$ref": "#/definitions/DynamoDBAction" + }, + "DynamoDBv2": { + "$ref": "#/definitions/DynamoDBv2Action" + }, + "Elasticsearch": { + "$ref": "#/definitions/ElasticsearchAction" + }, + "Firehose": { + "$ref": "#/definitions/FirehoseAction" + }, + "Http": { + "$ref": "#/definitions/HttpAction" + }, + "IotAnalytics": { + "$ref": "#/definitions/IotAnalyticsAction" + }, + "IotEvents": { + "$ref": "#/definitions/IotEventsAction" + }, + "IotSiteWise": { + "$ref": "#/definitions/IotSiteWiseAction" + }, + "Kinesis": { + "$ref": "#/definitions/KinesisAction" + }, + "Lambda": { + "$ref": "#/definitions/LambdaAction" + }, + "Republish": { + "$ref": "#/definitions/RepublishAction" + }, + "S3": { + "$ref": "#/definitions/S3Action" + }, + "Sns": { + "$ref": "#/definitions/SnsAction" + }, + "Sqs": { + "$ref": "#/definitions/SqsAction" + }, + "StepFunctions": { + "$ref": "#/definitions/StepFunctionsAction" + } + }, + "type": "object" + }, + "AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AssetPropertyVariant" + } + }, + "required": [ + "Value", + "Timestamp" + ], + "type": "object" + }, + "AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateReason": { + "type": "string" + }, + "StateValue": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "StateReason", + "StateValue", + "RoleArn" + ], + "type": "object" + }, + "CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricTimestamp": { + "type": "string" + }, + "MetricUnit": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricValue", + "MetricNamespace", + "MetricUnit", + "RoleArn" + ], + "type": "object" + }, + "DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName", + "HashKeyField", + "HashKeyValue", + "RoleArn" + ], + "type": "object" + }, + "DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/PutItemInput" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type", + "Endpoint", + "Index", + "Id", + "RoleArn" + ], + "type": "object" + }, + "FirehoseAction": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "HttpAction": { + "additionalProperties": false, + "properties": { + "Auth": { + "$ref": "#/definitions/HttpAuthorization" + }, + "ConfirmationUrl": { + "type": "string" + }, + "Headers": { + "items": { + "$ref": "#/definitions/HttpActionHeader" + }, + "type": "array", + "uniqueItems": true + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "HttpActionHeader": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "HttpAuthorization": { + "additionalProperties": false, + "properties": { + "Sigv4": { + "$ref": "#/definitions/SigV4Authorization" + } + }, + "type": "object" + }, + "IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "IotEventsAction": { + "additionalProperties": false, + "properties": { + "InputName": { + "type": "string" + }, + "MessageId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "InputName", + "RoleArn" + ], + "type": "object" + }, + "IotSiteWiseAction": { + "additionalProperties": false, + "properties": { + "PutAssetPropertyValueEntries": { + "items": { + "$ref": "#/definitions/PutAssetPropertyValueEntry" + }, + "type": "array", + "uniqueItems": true + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "PutAssetPropertyValueEntries", + "RoleArn" + ], + "type": "object" + }, + "KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "StreamName", + "RoleArn" + ], + "type": "object" + }, + "LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + } + }, + "type": "object" + }, + "PutAssetPropertyValueEntry": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValues": { + "items": { + "$ref": "#/definitions/AssetPropertyValue" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "PropertyValues" + ], + "type": "object" + }, + "PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "RepublishAction": { + "additionalProperties": false, + "properties": { + "Qos": { + "type": "integer" + }, + "RoleArn": { + "type": "string" + }, + "Topic": { + "type": "string" + } + }, + "required": [ + "Topic", + "RoleArn" + ], + "type": "object" + }, + "S3Action": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "SigV4Authorization": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "SigningRegion": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "SigningRegion", + "RoleArn" + ], + "type": "object" + }, + "SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "TargetArn", + "RoleArn" + ], + "type": "object" + }, + "SqsAction": { + "additionalProperties": false, + "properties": { + "QueueUrl": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "RoleArn", + "QueueUrl" + ], + "type": "object" + }, + "StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateMachineName": { + "type": "string" + } + }, + "required": [ + "StateMachineName", + "RoleArn" + ], + "type": "object" + }, + "TopicRulePayload": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": true + }, + "AwsIotSqlVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/Action" + }, + "RuleDisabled": { + "type": "boolean" + }, + "Sql": { + "type": "string" + } + }, + "required": [ + "RuleDisabled", + "Actions", + "Sql" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::IoT::TopicRule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RuleName": { + "type": "string" + }, + "TopicRulePayload": { + "$ref": "#/definitions/TopicRulePayload" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "required": [ + "TopicRulePayload" + ], + "typeName": "AWS::IoT::TopicRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-kinesis-streamconsumer.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-kinesis-streamconsumer.json new file mode 100644 index 0000000000..3507f8a448 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-kinesis-streamconsumer.json @@ -0,0 +1,42 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StreamARN", + "/properties/ConsumerName" + ], + "description": "Resource Type definition for AWS::Kinesis::StreamConsumer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ConsumerARN": { + "type": "string" + }, + "ConsumerCreationTimestamp": { + "type": "string" + }, + "ConsumerName": { + "type": "string" + }, + "ConsumerStatus": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StreamARN": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ConsumerStatus", + "/properties/Id", + "/properties/ConsumerARN", + "/properties/ConsumerCreationTimestamp" + ], + "required": [ + "ConsumerName", + "StreamARN" + ], + "typeName": "AWS::Kinesis::StreamConsumer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-lambda-permission.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-lambda-permission.json new file mode 100644 index 0000000000..f3d98e2735 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-lambda-permission.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceAccount", + "/properties/FunctionUrlAuthType", + "/properties/SourceArn", + "/properties/Principal", + "/properties/Action", + "/properties/FunctionName", + "/properties/EventSourceToken", + "/properties/PrincipalOrgID" + ], + "description": "Resource Type definition for AWS::Lambda::Permission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Action": { + "type": "string" + }, + "EventSourceToken": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionUrlAuthType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "PrincipalOrgID": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "Action", + "Principal" + ], + "typeName": "AWS::Lambda::Permission" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-instance.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-instance.json new file mode 100644 index 0000000000..bb049a1011 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-instance.json @@ -0,0 +1,299 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tenancy", + "/properties/VirtualizationType", + "/properties/TimeBasedAutoScaling", + "/properties/RootDeviceType", + "/properties/AutoScalingType", + "/properties/StackId", + "/properties/AvailabilityZone", + "/properties/SubnetId", + "/properties/BlockDeviceMappings", + "/properties/EbsOptimized" + ], + "definitions": { + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "TimeBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "Friday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Monday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Saturday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Sunday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Thursday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Tuesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Wednesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Instance", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "AmiId": { + "type": "string" + }, + "Architecture": { + "type": "string" + }, + "AutoScalingType": { + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticIps": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Hostname": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "LayerIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Os": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateIp": { + "type": "string" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RootDeviceType": { + "type": "string" + }, + "SshKeyName": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tenancy": { + "type": "string" + }, + "TimeBasedAutoScaling": { + "$ref": "#/definitions/TimeBasedAutoScaling" + }, + "VirtualizationType": { + "type": "string" + }, + "Volumes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/PublicIp", + "/properties/Id", + "/properties/PublicDnsName", + "/properties/PrivateDnsName", + "/properties/PrivateIp" + ], + "required": [ + "LayerIds", + "InstanceType", + "StackId" + ], + "typeName": "AWS::OpsWorks::Instance" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-layer.json new file mode 100644 index 0000000000..0c7549d975 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-layer.json @@ -0,0 +1,262 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StackId", + "/properties/Type" + ], + "definitions": { + "AutoScalingThresholds": { + "additionalProperties": false, + "properties": { + "CpuThreshold": { + "type": "number" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "InstanceCount": { + "type": "integer" + }, + "LoadThreshold": { + "type": "number" + }, + "MemoryThreshold": { + "type": "number" + }, + "ThresholdsWaitTime": { + "type": "integer" + } + }, + "type": "object" + }, + "LifecycleEventConfiguration": { + "additionalProperties": false, + "properties": { + "ShutdownEventConfiguration": { + "$ref": "#/definitions/ShutdownEventConfiguration" + } + }, + "type": "object" + }, + "LoadBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "DownScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + }, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + } + }, + "type": "object" + }, + "Recipes": { + "additionalProperties": false, + "properties": { + "Configure": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Deploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Setup": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Shutdown": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Undeploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ShutdownEventConfiguration": { + "additionalProperties": false, + "properties": { + "DelayUntilElbConnectionsDrained": { + "type": "boolean" + }, + "ExecutionTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "MountPoint": { + "type": "string" + }, + "NumberOfDisks": { + "type": "integer" + }, + "RaidLevel": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Layer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomInstanceProfileArn": { + "type": "string" + }, + "CustomJson": { + "type": "object" + }, + "CustomRecipes": { + "$ref": "#/definitions/Recipes" + }, + "CustomSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "$ref": "#/definitions/LifecycleEventConfiguration" + }, + "LoadBasedAutoScaling": { + "$ref": "#/definitions/LoadBasedAutoScaling" + }, + "Name": { + "type": "string" + }, + "Packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Shortname": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/VolumeConfiguration" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EnableAutoHealing", + "Type", + "AutoAssignElasticIps", + "Shortname", + "AutoAssignPublicIps", + "Name", + "StackId" + ], + "typeName": "AWS::OpsWorks::Layer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-stack.json new file mode 100644 index 0000000000..f3862f3e29 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-stack.json @@ -0,0 +1,230 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CloneAppIds", + "/properties/ClonePermissions", + "/properties/ServiceRoleArn", + "/properties/VpcId", + "/properties/SourceStackId" + ], + "definitions": { + "ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "RdsDbInstanceArn", + "DbUser" + ], + "type": "object" + }, + "Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "VpcId": [ + "DefaultSubnetId" + ] + }, + "description": "Resource Type definition for AWS::OpsWorks::Stack", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/ElasticIp" + }, + "type": "array", + "uniqueItems": true + }, + "HostnameTheme": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/RdsDbInstance" + }, + "type": "array", + "uniqueItems": true + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DefaultInstanceProfileArn", + "ServiceRoleArn", + "Name" + ], + "typeName": "AWS::OpsWorks::Stack" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", + "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", + "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", + "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", + "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/OptionGroupName": "$lowercase(OptionGroupName)", + "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", + "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/Endpoint/HostedZoneId", + "/properties/DbiResourceId", + "/properties/DBInstanceArn", + "/properties/DBSystemId", + "/properties/MasterUserSecret/SecretArn", + "/properties/CertificateDetails/CAIdentifier", + "/properties/CertificateDetails/ValidTill" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::RDS::DBInstance", + "writeOnlyProperties": [ + "/properties/AllowMajorVersionUpgrade", + "/properties/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-redshift-cluster.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-redshift-cluster.json new file mode 100644 index 0000000000..370f799510 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-redshift-cluster.json @@ -0,0 +1,195 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/MasterUsername", + "/properties/OwnerAccount", + "/properties/SnapshotIdentifier", + "/properties/Encrypted", + "/properties/Port", + "/properties/DBName", + "/properties/SnapshotClusterIdentifier", + "/properties/AvailabilityZone", + "/properties/ClusterSubnetGroupName", + "/properties/ClusterIdentifier", + "/properties/ElasticIp" + ], + "definitions": { + "LoggingProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllowVersionUpgrade": { + "type": "boolean" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "AvailabilityZone": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterParameterGroupName": { + "type": "string" + }, + "ClusterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ClusterSubnetGroupName": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "ClusterVersion": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "ElasticIp": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Endpoint": { + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "EndpointAddress": { + "type": "string" + }, + "EndpointPort": { + "type": "string" + }, + "HsmClientCertificateIdentifier": { + "type": "string" + }, + "HsmConfigurationIdentifier": { + "type": "string" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/LoggingProperties" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "NodeType": { + "cfnRegionSchema": "aws_redshift_cluster/nodetype_enum", + "type": "string" + }, + "NumberOfNodes": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "OwnerAccount": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Endpoint/Port", + "/properties/Endpoint/Address" + ], + "required": [ + "MasterUserPassword", + "NodeType", + "MasterUsername", + "DBName", + "ClusterType" + ], + "typeName": "AWS::Redshift::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-redshift-clusterparametergroup.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-redshift-clusterparametergroup.json new file mode 100644 index 0000000000..d05a398a2c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-redshift-clusterparametergroup.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ParameterGroupFamily", + "/properties/Description" + ], + "definitions": { + "Parameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterParameterGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ParameterGroupFamily": { + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/Parameter" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "ParameterGroupFamily" + ], + "typeName": "AWS::Redshift::ClusterParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-redshift-clustersubnetgroup.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-redshift-clustersubnetgroup.json new file mode 100644 index 0000000000..855e1344e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-redshift-clustersubnetgroup.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterSubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::Redshift::ClusterSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53-healthcheck.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53-healthcheck.json new file mode 100644 index 0000000000..aae9580ade --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53-healthcheck.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "definitions": { + "AlarmIdentifier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region", + "Name" + ], + "type": "object" + }, + "HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "$ref": "#/definitions/AlarmIdentifier" + }, + "ChildHealthChecks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableSNI": { + "type": "boolean" + }, + "FailureThreshold": { + "type": "integer" + }, + "FullyQualifiedDomainName": { + "type": "string" + }, + "HealthThreshold": { + "type": "integer" + }, + "IPAddress": { + "type": "string" + }, + "InsufficientDataHealthStatus": { + "type": "string" + }, + "Inverted": { + "type": "boolean" + }, + "MeasureLatency": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RequestInterval": { + "type": "integer" + }, + "ResourcePath": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "HealthCheckTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HealthCheck", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HealthCheckConfig": { + "$ref": "#/definitions/HealthCheckConfig", + "cfnSchema": [ + "aws_route53_healthcheck/healthcheckconfig_type_inclusive" + ] + }, + "HealthCheckTags": { + "items": { + "$ref": "#/definitions/HealthCheckTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "HealthCheckConfig" + ], + "typeName": "AWS::Route53::HealthCheck" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4f589ca0c9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53-hostedzone.json @@ -0,0 +1,108 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "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": [ + "VPCRegion", + "VPCId" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HostedZone", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "required": [ + "Name" + ], + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53resolver-resolverrule.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53resolver-resolverrule.json new file mode 100644 index 0000000000..953bf586fb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53resolver-resolverrule.json @@ -0,0 +1,90 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleType", + "/properties/DomainName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Ipv6": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53Resolver::ResolverRule", + "primaryIdentifier": [ + "/properties/ResolverRuleId" + ], + "properties": { + "Arn": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResolverEndpointId": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "RuleType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetIps": { + "items": { + "$ref": "#/definitions/TargetAddress" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ResolverRuleId", + "/properties/Arn" + ], + "required": [ + "DomainName", + "RuleType" + ], + "typeName": "AWS::Route53Resolver::ResolverRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53resolver-resolverruleassociation.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53resolver-resolverruleassociation.json new file mode 100644 index 0000000000..6b514ce0da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-route53resolver-resolverruleassociation.json @@ -0,0 +1,34 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/VPCId", + "/properties/ResolverRuleId" + ], + "description": "Resource Type definition for AWS::Route53Resolver::ResolverRuleAssociation", + "primaryIdentifier": [ + "/properties/ResolverRuleAssociationId" + ], + "properties": { + "Name": { + "type": "string" + }, + "ResolverRuleAssociationId": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "VPCId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ResolverRuleAssociationId" + ], + "required": [ + "VPCId", + "ResolverRuleId" + ], + "typeName": "AWS::Route53Resolver::ResolverRuleAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-secretsmanager-secrettargetattachment.json new file mode 100644 index 0000000000..ace966c437 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-secretsmanager-secrettargetattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretId": { + "type": "string" + }, + "TargetId": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecretId", + "TargetType", + "TargetId" + ], + "typeName": "AWS::SecretsManager::SecretTargetAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-acceptedportfolioshare.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-acceptedportfolioshare.json new file mode 100644 index 0000000000..767e95ecfd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-acceptedportfolioshare.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId" + ], + "typeName": "AWS::ServiceCatalog::AcceptedPortfolioShare" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-portfolio.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-portfolio.json new file mode 100644 index 0000000000..79797255b4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-portfolio.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ServiceCatalog::Portfolio", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioName": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/PortfolioName" + ], + "required": [ + "ProviderName", + "DisplayName" + ], + "typeName": "AWS::ServiceCatalog::Portfolio" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-portfolioprincipalassociation.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-portfolioprincipalassociation.json new file mode 100644 index 0000000000..2ae9e8819b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-portfolioprincipalassociation.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId", + "/properties/PrincipalARN", + "/properties/PrincipalType" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "PrincipalARN": { + "type": "string" + }, + "PrincipalType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PrincipalARN", + "PortfolioId", + "PrincipalType" + ], + "typeName": "AWS::ServiceCatalog::PortfolioPrincipalAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-portfolioproductassociation.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-portfolioproductassociation.json new file mode 100644 index 0000000000..ba9090e0f3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-portfolioproductassociation.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/SourcePortfolioId", + "/properties/PortfolioId", + "/properties/ProductId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "SourcePortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId", + "ProductId" + ], + "typeName": "AWS::ServiceCatalog::PortfolioProductAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-tagoptionassociation.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-tagoptionassociation.json new file mode 100644 index 0000000000..6ab91b4165 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-servicecatalog-tagoptionassociation.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceId", + "/properties/TagOptionId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "TagOptionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TagOptionId", + "ResourceId" + ], + "typeName": "AWS::ServiceCatalog::TagOptionAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-stepfunctions-activity.json new file mode 100644 index 0000000000..15981c2a5c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-stepfunctions-activity.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for Activity", + "handlers": { + "create": { + "permissions": [ + "states:CreateActivity", + "states:TagResource" + ] + }, + "delete": { + "permissions": [ + "states:DescribeActivity", + "states:DeleteActivity" + ] + }, + "list": { + "permissions": [ + "states:ListActivities" + ] + }, + "read": { + "permissions": [ + "states:DescribeActivity", + "states:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "states:ListTagsForResource", + "states:TagResource", + "states:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagsEntry" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::StepFunctions::Activity" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-ipset.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-ipset.json new file mode 100644 index 0000000000..198879fe09 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-ipset.json @@ -0,0 +1,50 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "IPSetDescriptor": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::IPSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "IPSetDescriptors": { + "items": { + "$ref": "#/definitions/IPSetDescriptor" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "typeName": "AWS::WAF::IPSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-rule.json new file mode 100644 index 0000000000..5ae8e6b6b7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-rule.json @@ -0,0 +1,68 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "enum": [ + "IPMatch", + "ByteMatch", + "SqlInjectionMatch", + "GeoMatch", + "SizeConstraint", + "XssMatch", + "RegexMatch" + ], + "type": "string" + } + }, + "required": [ + "Type", + "DataId", + "Negated" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::Rule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/Predicate" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "Name" + ], + "typeName": "AWS::WAF::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-sizeconstraintset.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-sizeconstraintset.json new file mode 100644 index 0000000000..cc2fdb3cd9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-sizeconstraintset.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "type": "integer" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "Size", + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::SizeConstraintSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/SizeConstraint" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SizeConstraints", + "Name" + ], + "typeName": "AWS::WAF::SizeConstraintSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-webacl.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-webacl.json new file mode 100644 index 0000000000..d95f27d59b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-webacl.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "ActivatedRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/WafAction" + }, + "Priority": { + "type": "integer" + }, + "RuleId": { + "type": "string" + } + }, + "required": [ + "Priority", + "RuleId" + ], + "type": "object" + }, + "WafAction": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::WebACL", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DefaultAction": { + "$ref": "#/definitions/WafAction" + }, + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ActivatedRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "DefaultAction", + "Name" + ], + "typeName": "AWS::WAF::WebACL" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-xssmatchset.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-xssmatchset.json new file mode 100644 index 0000000000..a7cd951419 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-waf-xssmatchset.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::XssMatchSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/XssMatchTuple" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "XssMatchTuples", + "Name" + ], + "typeName": "AWS::WAF::XssMatchSet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-wafv2-rulegroup.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-wafv2-rulegroup.json new file mode 100644 index 0000000000..dd0cd3570b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-wafv2-rulegroup.json @@ -0,0 +1,1241 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Count traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the RuleGroup", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the RuleGroup.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelSummary": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP" + ], + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of RuleGroup that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront RuleGroup, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the RuleGroup.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a RuleGroup, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a RuleGroup, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the RuleGroup with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a RuleGroup, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteRuleGroup", + "wafv2:GetRuleGroup" + ] + }, + "list": { + "permissions": [ + "wafv2:listRuleGroups" + ] + }, + "read": { + "permissions": [ + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AvailableLabels": { + "description": "Collection of Available Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "ConsumedLabels": { + "description": "Collection of Consumed Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/LabelNamespace", + "/properties/AvailableLabels/*/Name", + "/properties/ConsumedLabels/*/Name" + ], + "required": [ + "Capacity", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::RuleGroup" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-wafv2-webacl.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-wafv2-webacl.json new file mode 100644 index 0000000000..8153b3010f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-wafv2-webacl.json @@ -0,0 +1,1699 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AWSManagedRulesATPRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Account Takeover Prevention managed rule group in the web ACL", + "properties": { + "LoginPath": { + "type": "string" + }, + "RequestInspection": { + "$ref": "#/definitions/RequestInspection" + }, + "ResponseInspection": { + "$ref": "#/definitions/ResponseInspection" + } + }, + "required": [ + "LoginPath" + ], + "type": "object" + }, + "AWSManagedRulesBotControlRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Bot Control managed rule group in the web ACL", + "properties": { + "InspectionLevel": { + "enum": [ + "COMMON", + "TARGETED" + ], + "type": "string" + } + }, + "required": [ + "InspectionLevel" + ], + "type": "object" + }, + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AssociationConfig": { + "additionalProperties": false, + "description": "AssociationConfig for body inspection", + "properties": { + "RequestBody": { + "$ref": "#/definitions/RequestBody" + } + }, + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "DefaultAction": { + "additionalProperties": false, + "description": "Default Action WebACL will take against ingress traffic when there is no matching Rule.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + } + }, + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the WebACL", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the WebACL.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "ExcludedRule": { + "additionalProperties": false, + "description": "Excluded Rule in the RuleGroup or ManagedRuleGroup will not be evaluated.", + "properties": { + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "FieldIdentifier": { + "additionalProperties": false, + "properties": { + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "Identifier" + ], + "type": "object" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "ManagedRuleGroupConfig": { + "additionalProperties": false, + "description": "ManagedRuleGroupConfig.", + "properties": { + "AWSManagedRulesATPRuleSet": { + "$ref": "#/definitions/AWSManagedRulesATPRuleSet" + }, + "AWSManagedRulesBotControlRuleSet": { + "$ref": "#/definitions/AWSManagedRulesBotControlRuleSet" + }, + "LoginPath": { + "maxLength": 256, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "type": "object" + }, + "ManagedRuleGroupStatement": { + "additionalProperties": false, + "properties": { + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "ManagedRuleGroupConfigs": { + "description": "Collection of ManagedRuleGroupConfig.", + "items": { + "$ref": "#/definitions/ManagedRuleGroupConfig" + }, + "type": "array" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + }, + "VendorName": { + "type": "string" + }, + "Version": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[\\w#:\\.\\-/]+$", + "type": "string" + } + }, + "required": [ + "VendorName", + "Name" + ], + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OverrideAction": { + "additionalProperties": false, + "description": "Override a RuleGroup or ManagedRuleGroup behavior. This can only be applied to Rule that has RuleGroupReferenceStatement or ManagedRuleGroupReferenceStatement.", + "properties": { + "Count": { + "description": "Count traffic towards application.", + "type": "object" + }, + "None": { + "description": "Keep the RuleGroup or ManagedRuleGroup behavior as is.", + "type": "object" + } + }, + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "QueryString": { + "type": "object" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP" + ], + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RequestBody": { + "additionalProperties": false, + "description": "Map of AssociatedResourceType and RequestBodyAssociatedResourceTypeConfig", + "patternProperties": { + "^(CLOUDFRONT)$": { + "$ref": "#/definitions/RequestBodyAssociatedResourceTypeConfig" + } + }, + "type": "object" + }, + "RequestBodyAssociatedResourceTypeConfig": { + "additionalProperties": false, + "description": "Configures the inspection size in the request body.", + "properties": { + "DefaultSizeInspectionLimit": { + "$ref": "#/definitions/SizeInspectionLimit" + } + }, + "required": [ + "DefaultSizeInspectionLimit" + ], + "type": "object" + }, + "RequestInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login requests", + "properties": { + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "PayloadType", + "UsernameField", + "PasswordField" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login responses", + "properties": { + "BodyContains": { + "$ref": "#/definitions/ResponseInspectionBodyContains" + }, + "Header": { + "$ref": "#/definitions/ResponseInspectionHeader" + }, + "Json": { + "$ref": "#/definitions/ResponseInspectionJson" + }, + "StatusCode": { + "$ref": "#/definitions/ResponseInspectionStatusCode" + } + }, + "type": "object" + }, + "ResponseInspectionBodyContains": { + "additionalProperties": false, + "description": "Response body contents that indicate success or failure of a login request", + "properties": { + "FailureStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "SuccessStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessStrings", + "FailureStrings" + ], + "type": "object" + }, + "ResponseInspectionHeader": { + "additionalProperties": false, + "description": "Response headers that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 200, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Name", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionJson": { + "additionalProperties": false, + "description": "Response JSON that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Identifier", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionStatusCode": { + "additionalProperties": false, + "description": "Response status codes that indicate success or failure of a login request", + "properties": { + "FailureCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "SuccessCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessCodes", + "FailureCodes" + ], + "type": "object" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of WebACL that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "OverrideAction": { + "$ref": "#/definitions/OverrideAction" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleActionOverride": { + "additionalProperties": false, + "description": "Action override for rules in the rule group.", + "properties": { + "ActionToUse": { + "$ref": "#/definitions/RuleAction" + }, + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name", + "ActionToUse" + ], + "type": "object" + }, + "RuleGroupReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront WebACL, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SizeInspectionLimit": { + "enum": [ + "KB_16", + "KB_32", + "KB_48", + "KB_64" + ], + "type": "string" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "ManagedRuleGroupStatement": { + "$ref": "#/definitions/ManagedRuleGroupStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "RuleGroupReferenceStatement": { + "$ref": "#/definitions/RuleGroupReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "TokenDomains": { + "description": "List of domains to accept in web request tokens, in addition to the domain of the protected resource.", + "items": { + "maxLength": 253, + "minLength": 1, + "pattern": "^[\\w\\.\\-/]+$", + "type": "string" + }, + "type": "array" + }, + "UriPath": { + "type": "object" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the WebACL.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteWebACL", + "wafv2:GetWebACL" + ] + }, + "list": { + "permissions": [ + "wafv2:listWebACLs" + ] + }, + "read": { + "permissions": [ + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AssociationConfig": { + "$ref": "#/definitions/AssociationConfig" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "DefaultAction": { + "$ref": "#/definitions/DefaultAction" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "TokenDomains": { + "$ref": "#/definitions/TokenDomains" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Capacity", + "/properties/Id", + "/properties/LabelNamespace" + ], + "required": [ + "DefaultAction", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::WebACL" +} 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 2e69f1508e..fd19fd0f01 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py @@ -119,6 +119,7 @@ "AWS::Route53::RecordSet", "AWS::MediaStore::Container", "AWS::IoTAnalytics::Datastore", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::IVS::StreamKey", "AWS::ElastiCache::SecurityGroup", @@ -419,6 +420,7 @@ "AWS::RoboMaker::Fleet", "AWS::EC2::VolumeAttachment", "AWS::Glue::SecurityConfiguration", + "AWS::NetworkFirewall::TLSInspectionConfiguration", "AWS::OpenSearchServerless::Collection", "AWS::DataBrew::Ruleset", "AWS::GameLift::MatchmakingConfiguration", @@ -881,6 +883,7 @@ "AWS::WAF::XssMatchSet", "AWS::EC2::VerifiedAccessTrustProvider", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::PinpointEmail::ConfigurationSet", "AWS::Pinpoint::EmailTemplate", "AWS::MediaLive::Multiplex", @@ -1239,6 +1242,7 @@ "aws-route53-recordset.json", "aws-mediastore-container.json", "aws-iotanalytics-datastore.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-ivs-streamkey.json", "aws-elasticache-securitygroup.json", @@ -1287,7 +1291,6 @@ "aws-docdb-dbinstance.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", - "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-appstream-appblockbuilder.json", @@ -1295,6 +1298,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1381,7 +1385,6 @@ "aws-iam-role.json", "aws-workspacesthinclient-environment.json", "aws-dms-endpoint.json", - "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", @@ -1405,6 +1408,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1428,6 +1432,7 @@ "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1534,6 +1539,7 @@ "aws-robomaker-fleet.json", "aws-ec2-volumeattachment.json", "aws-glue-securityconfiguration.json", + "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-opensearchserverless-collection.json", "aws-databrew-ruleset.json", "aws-gamelift-matchmakingconfiguration.json", @@ -1605,6 +1611,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-omics-variantstore.json", "aws-appsync-apikey.json", @@ -1731,7 +1738,6 @@ "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-glue-crawler.json", - "aws-cloudfront-function.json", "aws-apigateway-method.json", "aws-wafregional-regexpatternset.json", "aws-ssm-patchbaseline.json", @@ -1765,6 +1771,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", @@ -1809,7 +1816,6 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", - "aws-iotsitewise-gateway.json", "aws-emr-studiosessionmapping.json", "aws-ivs-playbackkeypair.json", "aws-cloudformation-macro.json", @@ -1986,6 +1992,7 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-pinpointemail-configurationset.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-image.json deleted file mode 100644 index 223d64e03e..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/Workflows", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 3cf9b2a4a9..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-workflow.json deleted file mode 100644 index 5c25c2361b..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-imagebuilder-workflow.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Version", - "/properties/ChangeDescription", - "/properties/Description", - "/properties/Data", - "/properties/Uri", - "/properties/Type", - "/properties/KmsKeyId", - "/properties/Tags" - ], - "description": "Resource schema for AWS::ImageBuilder::Workflow", - "handlers": { - "create": { - "permissions": [ - "iam:GetRole", - "kms:GenerateDataKey*", - "kms:Encrypt", - "kms:Decrypt", - "s3:GetObject", - "s3:HeadBucket", - "s3:GetBucketLocation", - "imagebuilder:TagResource", - "imagebuilder:GetWorkflow", - "imagebuilder:CreateWorkflow" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:GetWorkflow", - "imagebuilder:UnTagResource", - "imagebuilder:DeleteWorkflow" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Data" - ] - }, - { - "required": [ - "Uri" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the workflow.", - "type": "string" - }, - "ChangeDescription": { - "description": "The change description of the workflow.", - "type": "string" - }, - "Data": { - "description": "The data of the workflow.", - "maxLength": 16000, - "minLength": 1, - "type": "string" - }, - "Description": { - "description": "The description of the workflow.", - "type": "string" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the workflow.", - "type": "string" - }, - "Name": { - "description": "The name of the workflow.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the workflow.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", - "enum": [ - "BUILD", - "TEST", - "DISTRIBUTION" - ], - "type": "string" - }, - "Uri": { - "description": "The uri of the workflow.", - "type": "string" - }, - "Version": { - "description": "The version of the workflow.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Type", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Workflow", - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-iotsitewise-gateway.json new file mode 100644 index 0000000000..2c70369407 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-iotsitewise-gateway.json @@ -0,0 +1,189 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GatewayPlatform" + ], + "definitions": { + "CapabilityConfiguration": { + "description": "The JSON document that defines the gateway capability's configuration.", + "type": "string" + }, + "CapabilityNamespace": { + "description": "The namespace of the capability configuration.", + "type": "string" + }, + "GatewayCapabilitySummary": { + "additionalProperties": false, + "description": "Contains a summary of a gateway capability configuration.", + "properties": { + "CapabilityConfiguration": { + "$ref": "#/definitions/CapabilityConfiguration" + }, + "CapabilityNamespace": { + "$ref": "#/definitions/CapabilityNamespace" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "GatewayPlatform": { + "additionalProperties": false, + "description": "Contains a gateway's platform information.", + "oneOf": [ + { + "required": [ + "Greengrass" + ] + }, + { + "required": [ + "GreengrassV2" + ] + } + ], + "properties": { + "Greengrass": { + "$ref": "#/definitions/Greengrass", + "description": "A gateway that runs on AWS IoT Greengrass V1." + }, + "GreengrassV2": { + "$ref": "#/definitions/GreengrassV2", + "description": "A gateway that runs on AWS IoT Greengrass V2." + } + }, + "type": "object" + }, + "Greengrass": { + "additionalProperties": false, + "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", + "properties": { + "GroupArn": { + "description": "The ARN of the Greengrass group.", + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "GreengrassV2": { + "additionalProperties": false, + "description": "Contains the CoreDeviceThingName of AWS IoT Greengrass Group V2 that the gateway runs on.", + "properties": { + "CoreDeviceThingName": { + "description": "The name of the CoreDevice in GreenGrass V2.", + "type": "string" + } + }, + "required": [ + "CoreDeviceThingName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Gateway", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iam:PassRole", + "iam:GetRole", + "greengrass:GetCoreDevice", + "iot:DescribeThing" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteGateway" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListGateways" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotsitewise:UpdateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:DescribeGateway", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/GatewayId" + ], + "properties": { + "GatewayCapabilitySummaries": { + "description": "A list of gateway capability summaries that each contain a namespace and status.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/GatewayCapabilitySummary" + }, + "type": "array", + "uniqueItems": true + }, + "GatewayId": { + "description": "The ID of the gateway device.", + "type": "string" + }, + "GatewayName": { + "description": "A unique, friendly name for the gateway.", + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/GatewayPlatform", + "description": "The gateway's platform. You can only specify one platform in a gateway." + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the gateway.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/GatewayId" + ], + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Gateway" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-iotsitewise-portal.json new file mode 100644 index 0000000000..1f96697cad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-iotsitewise-portal.json @@ -0,0 +1,155 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/PortalArn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalAuthMode" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Portal", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreatePortal", + "iotsitewise:TagResource", + "iam:PassRole", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeletePortal", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListPortals" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribePortal" + ] + }, + "update": { + "permissions": [ + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", + "iotsitewise:UpdatePortal", + "iotsitewise:UntagResource", + "iam:PassRole", + "sso:GetManagedApplicationInstance", + "sso:UpdateApplicationInstanceDisplayData" + ] + } + }, + "primaryIdentifier": [ + "/properties/PortalId" + ], + "properties": { + "Alarms": { + "additionalProperties": false, + "description": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range.", + "properties": { + "AlarmRoleArn": { + "description": "The ARN of the IAM role that allows the alarm to perform actions and access AWS resources and services, such as AWS IoT Events.", + "type": "string" + }, + "NotificationLambdaArn": { + "description": "The ARN of the AWS Lambda function that manages alarm notifications. For more information, see Managing alarm notifications in the AWS IoT Events Developer Guide.", + "type": "string" + } + }, + "type": "object" + }, + "NotificationSenderEmail": { + "description": "The email address that sends alarm notifications.", + "type": "string" + }, + "PortalArn": { + "description": "The ARN of the portal, which has the following format.", + "type": "string" + }, + "PortalAuthMode": { + "description": "The service to use to authenticate users to the portal. Choose from SSO or IAM. You can't change this value after you create a portal.", + "type": "string" + }, + "PortalClientId": { + "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", + "type": "string" + }, + "PortalContactEmail": { + "description": "The AWS administrator's contact email address.", + "type": "string" + }, + "PortalDescription": { + "description": "A description for the portal.", + "type": "string" + }, + "PortalId": { + "description": "The ID of the portal.", + "type": "string" + }, + "PortalName": { + "description": "A friendly name for the portal.", + "type": "string" + }, + "PortalStartUrl": { + "description": "The public root URL for the AWS IoT AWS IoT SiteWise Monitor application portal.", + "type": "string" + }, + "RoleArn": { + "description": "The ARN of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the portal.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/PortalArn", + "/properties/PortalClientId", + "/properties/PortalId", + "/properties/PortalStartUrl" + ], + "required": [ + "PortalContactEmail", + "PortalName", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotsitewise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Portal", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-iotsitewise-project.json new file mode 100644 index 0000000000..0e457b1491 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-iotsitewise-project.json @@ -0,0 +1,120 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalId" + ], + "definitions": { + "AssetId": { + "description": "The ID of the asset", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Project", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateProject", + "iotsitewise:BatchAssociateProjectAssets" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteProject" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListProjects" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:ListTagsForResource", + "iotsitewise:ListProjectAssets" + ] + }, + "update": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:UpdateProject", + "iotsitewise:BatchAssociateProjectAssets", + "iotsitewise:BatchDisAssociateProjectAssets", + "iotsitewise:ListProjectAssets", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ProjectId" + ], + "properties": { + "AssetIds": { + "description": "The IDs of the assets to be associated to the project.", + "items": { + "$ref": "#/definitions/AssetId" + }, + "type": "array", + "uniqueItems": true + }, + "PortalId": { + "description": "The ID of the portal in which to create the project.", + "type": "string" + }, + "ProjectArn": { + "description": "The ARN of the project.", + "type": "string" + }, + "ProjectDescription": { + "description": "A description for the project.", + "type": "string" + }, + "ProjectId": { + "description": "The ID of the project.", + "type": "string" + }, + "ProjectName": { + "description": "A friendly name for the project.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ProjectId", + "/properties/ProjectArn" + ], + "required": [ + "PortalId", + "ProjectName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Project" +} 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 72647b27a5..d4c3b55c89 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py @@ -110,6 +110,7 @@ "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", "AWS::MediaStore::Container", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -468,6 +469,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::Omics::VariantStore", "AWS::AppSync::ApiKey", @@ -583,6 +585,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::GameLift::GameSessionQueue", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", @@ -821,6 +824,7 @@ "AWS::WAF::XssMatchSet", "AWS::EC2::VerifiedAccessTrustProvider", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::Pinpoint::EmailTemplate", "AWS::MediaLive::Multiplex", "AWS::Scheduler::ScheduleGroup", @@ -1111,6 +1115,7 @@ "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-transfer-certificate.json", + "aws-pinpoint-gcmchannel.json", "aws-connect-instance.json", "aws-apigateway-documentationpart.json", "aws-cloudwatch-compositealarm.json", @@ -1152,6 +1157,7 @@ "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", "aws-mediastore-container.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -1203,6 +1209,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1309,6 +1316,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1332,6 +1340,7 @@ "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1503,6 +1512,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-omics-variantstore.json", "aws-appsync-apikey.json", @@ -1551,6 +1561,7 @@ "aws-connect-tasktemplate.json", "aws-pinpoint-apnssandboxchannel.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1610,11 +1621,11 @@ "aws-emrcontainers-virtualcluster.json", "aws-ec2-securitygroup.json", "aws-quicksight-theme.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-gamelift-gamesessionqueue.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", @@ -1648,6 +1659,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", @@ -1765,7 +1777,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-ec2-verifiedaccessinstance.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-iot1click-device.json", "aws-ec2-ipamresourcediscoveryassociation.json", @@ -1845,6 +1856,7 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-connect-user.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-connect-user.json index b949608f4f..546e21910e 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-connect-user.json +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-connect-user.json @@ -6,6 +6,18 @@ "minimum": 0, "type": "integer" }, + "AttributeName": { + "description": "The name of user's proficiency. You must use name of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "AttributeValue": { + "description": "The value of user's proficiency. You must use value of predefined attribute present in the Amazon Connect instance.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, "AutoAccept": { "description": "The Auto accept setting.", "type": "boolean" @@ -26,6 +38,12 @@ "description": "The last name. This is required if you are using Amazon Connect or SAML for identity management.", "type": "string" }, + "Level": { + "description": "The level of the proficiency. The valid values are 1, 2, 3, 4 and 5.", + "maximum": 5.0, + "minimum": 1.0, + "type": "number" + }, "Mobile": { "description": "The mobile phone number.", "pattern": "^\\+[1-9]\\d{1,14}$", @@ -115,6 +133,27 @@ "PhoneType" ], "type": "object" + }, + "UserProficiency": { + "additionalProperties": false, + "description": "Proficiency of a user.", + "properties": { + "AttributeName": { + "$ref": "#/definitions/AttributeName" + }, + "AttributeValue": { + "$ref": "#/definitions/AttributeValue" + }, + "Level": { + "$ref": "#/definitions/Level" + } + }, + "required": [ + "AttributeName", + "AttributeValue", + "Level" + ], + "type": "object" } }, "description": "Resource Type definition for AWS::Connect::User", @@ -215,6 +254,14 @@ "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent/[-a-zA-Z0-9]*$", "type": "string" }, + "UserProficiencies": { + "description": "One or more predefined attributes assigned to a user, with a level that indicates how skilled they are.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/UserProficiency" + }, + "type": "array" + }, "Username": { "description": "The user name for the account.", "maxLength": 64, diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-pinpoint-gcmchannel.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-pinpoint-gcmchannel.json deleted file mode 100644 index f193b096ad..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-pinpoint-gcmchannel.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApplicationId" - ], - "description": "Resource Type definition for AWS::Pinpoint::GCMChannel", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "ApiKey": { - "type": "string" - }, - "ApplicationId": { - "type": "string" - }, - "Enabled": { - "type": "boolean" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApiKey", - "ApplicationId" - ], - "typeName": "AWS::Pinpoint::GCMChannel" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} 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 1b8dff9669..4e06deea56 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py @@ -98,6 +98,7 @@ "AWS::Macie::CustomDataIdentifier", "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -387,6 +388,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -489,6 +491,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", "AWS::Glue::Crawler", @@ -690,6 +693,7 @@ "AWS::RDS::DBClusterParameterGroup", "AWS::WAF::XssMatchSet", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::MediaLive::Multiplex", "AWS::Scheduler::ScheduleGroup", "AWS::DevOpsGuru::NotificationChannel", @@ -964,6 +968,7 @@ "aws-macie-customdataidentifier.json", "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -1006,6 +1011,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1088,6 +1094,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -1106,6 +1113,7 @@ "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", @@ -1240,6 +1248,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1277,6 +1286,7 @@ "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1332,15 +1342,14 @@ "aws-networkmanager-sitetositevpnattachment.json", "aws-ec2-securitygroup.json", "aws-quicksight-theme.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-glue-crawler.json", - "aws-cloudfront-function.json", "aws-apigateway-method.json", "aws-wafregional-regexpatternset.json", "aws-ssm-patchbaseline.json", @@ -1367,6 +1376,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", @@ -1466,7 +1476,6 @@ "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -1528,6 +1537,7 @@ "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", "aws-devopsguru-notificationchannel.json", @@ -1687,6 +1697,7 @@ "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-ec2-trafficmirrorsession.json", "aws-s3outposts-bucketpolicy.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-securityhub-hub.json deleted file mode 100644 index b0401a5225..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-securityhub-hub.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "additionalProperties": false, - "description": "Resource Type definition for AWS::SecurityHub::Hub", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutoEnableControls": { - "type": "boolean" - }, - "ControlFindingGenerator": { - "type": "string" - }, - "EnableDefaultStandards": { - "type": "boolean" - }, - "Id": { - "type": "string" - }, - "Tags": { - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecurityHub::Hub" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/__init__.py b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py new file mode 100644 index 0000000000..a944058724 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py @@ -0,0 +1,1022 @@ +from typing import List + +# pylint: disable=too-many-lines +types = [ + "AWS::CDK::Metadata", + "AWS::CE::AnomalySubscription", + "AWS::Shield::DRTAccess", + "AWS::Glue::Partition", + "AWS::EC2::TransitGatewayRouteTablePropagation", + "AWS::Shield::ProactiveEngagement", + "AWS::ApiGateway::BasePathMapping", + "AWS::GuardDuty::Filter", + "AWS::ECS::Service", + "AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "AWS::DMS::ReplicationConfig", + "AWS::DynamoDB::Table", + "AWS::AmazonMQ::ConfigurationAssociation", + "AWS::EC2::SecurityGroupEgress", + "AWS::EC2::LocalGatewayRouteTableVPCAssociation", + "AWS::Glue::DataQualityRuleset", + "AWS::Config::ConfigurationRecorder", + "AWS::EC2::NetworkPerformanceMetricSubscription", + "AWS::CloudFront::ContinuousDeploymentPolicy", + "AWS::ECR::ReplicationConfiguration", + "AWS::AppConfig::ExtensionAssociation", + "AWS::EC2::IPAMPoolCidr", + "AWS::IoT::TopicRuleDestination", + "AWS::Redshift::ClusterSubnetGroup", + "AWS::RDS::DBInstance", + "AWS::EC2::VPCDHCPOptionsAssociation", + "AWS::ApiGateway::Model", + "AWS::EC2::NetworkAcl", + "AWS::Lambda::EventSourceMapping", + "AWS::Logs::ResourcePolicy", + "AWS::ServiceCatalog::LaunchNotificationConstraint", + "AWS::IoT::CACertificate", + "AWS::EC2::NetworkAclEntry", + "AWS::Transfer::Certificate", + "AWS::ApiGateway::DocumentationPart", + "AWS::CloudWatch::CompositeAlarm", + "AWS::Route53Resolver::FirewallDomainList", + "AWS::AppConfig::Application", + "AWS::OpsWorks::Stack", + "AWS::GameLift::Fleet", + "AWS::DataSync::LocationFSxWindows", + "AWS::GameLift::Build", + "AWS::ApiGateway::RequestValidator", + "AWS::AutoScaling::WarmPool", + "AWS::ApplicationAutoScaling::ScalableTarget", + "AWS::Config::StoredQuery", + "AWS::ACMPCA::Permission", + "AWS::ApiGateway::DomainName", + "AWS::ECS::PrimaryTaskSet", + "AWS::FMS::ResourceSet", + "AWS::AutoScaling::AutoScalingGroup", + "AWS::WAFv2::RegexPatternSet", + "AWS::EKS::FargateProfile", + "AWS::Route53::DNSSEC", + "AWS::EC2::TransitGatewayRouteTable", + "AWS::ControlTower::EnabledControl", + "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", + "AWS::ElastiCache::SecurityGroup", + "AWS::OpsWorks::Layer", + "AWS::CloudTrail::EventDataStore", + "AWS::KinesisFirehose::DeliveryStream", + "AWS::PCAConnectorAD::DirectoryRegistration", + "AWS::ImageBuilder::Component", + "AWS::MediaConnect::FlowEntitlement", + "AWS::Glue::Connection", + "AWS::IAM::Group", + "AWS::Organizations::ResourcePolicy", + "AWS::EC2::TransitGatewayMulticastGroupSource", + "AWS::Transfer::Profile", + "AWS::GameLift::Alias", + "AWS::AppSync::DomainName", + "AWS::ApiGateway::UsagePlanKey", + "AWS::FMS::Policy", + "AWS::CloudFront::RealtimeLogConfig", + "AWS::CloudTrail::Channel", + "AWS::LakeFormation::DataCellsFilter", + "AWS::DataSync::LocationHDFS", + "AWS::Events::Archive", + "AWS::MSK::Cluster", + "AWS::EC2::VPCEndpointConnectionNotification", + "AWS::CodePipeline::Pipeline", + "AWS::OpsWorks::Instance", + "AWS::Config::ConfigurationAggregator", + "AWS::ImageBuilder::ImagePipeline", + "AWS::ElasticLoadBalancingV2::ListenerCertificate", + "AWS::Route53Resolver::ResolverRuleAssociation", + "AWS::Synthetics::Canary", + "AWS::Backup::RestoreTestingSelection", + "AWS::SNS::Subscription", + "AWS::EC2::NatGateway", + "AWS::InternetMonitor::Monitor", + "AWS::Transfer::Workflow", + "AWS::Glue::DevEndpoint", + "AWS::EventSchemas::Discoverer", + "AWS::ElastiCache::UserGroup", + "AWS::IoT::ThingGroup", + "AWS::ImageBuilder::ImageRecipe", + "AWS::IoT::SoftwarePackage", + "AWS::ApiGateway::RestApi", + "AWS::OpsWorks::ElasticLoadBalancerAttachment", + "AWS::S3ObjectLambda::AccessPointPolicy", + "AWS::ElastiCache::ReplicationGroup", + "AWS::StepFunctions::StateMachineAlias", + "AWS::RDS::GlobalCluster", + "AWS::Glue::Job", + "AWS::ServiceCatalog::CloudFormationProvisionedProduct", + "AWS::Route53::HostedZone", + "AWS::EKS::PodIdentityAssociation", + "AWS::Glue::Table", + "AWS::SageMaker::InferenceComponent", + "AWS::Logs::MetricFilter", + "AWS::Lambda::Function", + "AWS::SNS::Topic", + "AWS::Backup::BackupSelection", + "AWS::DataSync::LocationFSxLustre", + "AWS::SageMaker::App", + "AWS::EC2::VPCGatewayAttachment", + "AWS::CloudTrail::Trail", + "AWS::EC2::VPNConnectionRoute", + "AWS::EC2::InternetGateway", + "AWS::EC2::GatewayRouteTableAssociation", + "AWS::WAFv2::IPSet", + "AWS::SSM::Document", + "AWS::IAM::Role", + "AWS::Events::ApiDestination", + "AWS::ElastiCache::ServerlessCache", + "AWS::CloudFront::CloudFrontOriginAccessIdentity", + "AWS::ApiGateway::ApiKey", + "AWS::AutoScaling::LaunchConfiguration", + "AWS::ApiGateway::ClientCertificate", + "AWS::KinesisAnalyticsV2::Application", + "AWS::Lambda::Alias", + "AWS::Logs::LogAnomalyDetector", + "AWS::WAF::IPSet", + "AWS::EC2::TransitGatewayMulticastDomainAssociation", + "AWS::WAF::SizeConstraintSet", + "AWS::EC2::TransitGatewayRouteTableAssociation", + "AWS::ImageBuilder::Image", + "AWS::ElastiCache::SecurityGroupIngress", + "AWS::CloudWatch::Dashboard", + "AWS::CloudWatch::Alarm", + "AWS::IoT::ThingType", + "AWS::GuardDuty::Member", + "AWS::CloudFormation::CustomResource", + "AWS::WAFv2::RuleGroup", + "AWS::ElastiCache::ParameterGroup", + "AWS::Glue::Classifier", + "AWS::CodeDeploy::DeploymentGroup", + "AWS::CloudFormation::StackSet", + "AWS::EC2::Route", + "AWS::CloudFormation::HookVersion", + "AWS::XRay::ResourcePolicy", + "AWS::IoT::ResourceSpecificLogging", + "AWS::ServiceCatalog::LaunchTemplateConstraint", + "AWS::WAFv2::LoggingConfiguration", + "AWS::DynamoDB::GlobalTable", + "AWS::Backup::BackupPlan", + "AWS::ImageBuilder::DistributionConfiguration", + "AWS::LakeFormation::Permissions", + "AWS::Glue::DataCatalogEncryptionSettings", + "AWS::CloudFront::PublicKey", + "AWS::PCAConnectorAD::Connector", + "AWS::IdentityStore::Group", + "AWS::RAM::Permission", + "AWS::DataSync::Task", + "AWS::ECS::TaskDefinition", + "AWS::Shield::Protection", + "AWS::IdentityStore::GroupMembership", + "AWS::AppSync::FunctionConfiguration", + "AWS::EC2::SpotFleet", + "AWS::IoT::PolicyPrincipalAttachment", + "AWS::FMS::NotificationChannel", + "AWS::MSK::BatchScramSecret", + "AWS::S3::Bucket", + "AWS::GuardDuty::IPSet", + "AWS::ServiceDiscovery::HttpNamespace", + "AWS::EMR::SecurityConfiguration", + "AWS::CloudWatch::InsightRule", + "AWS::ApiGateway::UsagePlan", + "AWS::Batch::SchedulingPolicy", + "AWS::IoT::Authorizer", + "AWS::IoT::JobTemplate", + "AWS::ServiceCatalog::PortfolioProductAssociation", + "AWS::Athena::WorkGroup", + "AWS::SageMaker::ImageVersion", + "AWS::ServiceCatalog::PortfolioShare", + "AWS::ApiGateway::VpcLink", + "AWS::IAM::ServerCertificate", + "AWS::IoT::SecurityProfile", + "AWS::Events::EventBus", + "AWS::SQS::QueueInlinePolicy", + "AWS::Organizations::Organization", + "AWS::SSM::MaintenanceWindowTarget", + "AWS::ApiGateway::Authorizer", + "AWS::IAM::Policy", + "AWS::RDS::DBSecurityGroupIngress", + "AWS::EC2::TransitGatewayMulticastGroupMember", + "AWS::EC2::VolumeAttachment", + "AWS::Glue::SecurityConfiguration", + "AWS::ApplicationInsights::Application", + "AWS::ECS::ClusterCapacityProviderAssociations", + "AWS::AppConfig::ConfigurationProfile", + "AWS::Route53Resolver::FirewallRuleGroup", + "AWS::MSK::Configuration", + "AWS::EC2::TransitGateway", + "AWS::EC2::VPCEndpointServicePermissions", + "AWS::SSM::MaintenanceWindowTask", + "AWS::EC2::TransitGatewayMulticastDomain", + "AWS::VerifiedPermissions::PolicyTemplate", + "AWS::EKS::Cluster", + "AWS::EFS::FileSystem", + "AWS::Logs::QueryDefinition", + "AWS::IAM::InstanceProfile", + "AWS::IoT::BillingGroup", + "AWS::DataSync::LocationNFS", + "AWS::SageMaker::Domain", + "AWS::CertificateManager::Certificate", + "AWS::SDB::Domain", + "AWS::EC2::SubnetRouteTableAssociation", + "AWS::ServiceCatalog::ServiceActionAssociation", + "AWS::ImageBuilder::ContainerRecipe", + "AWS::EFS::AccessPoint", + "AWS::Redshift::ClusterSecurityGroupIngress", + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation", + "AWS::ElasticLoadBalancingV2::LoadBalancer", + "AWS::OpenSearchService::Domain", + "AWS::ServiceDiscovery::Instance", + "AWS::Elasticsearch::Domain", + "AWS::ServiceCatalog::StackSetConstraint", + "AWS::EC2::NetworkInterfacePermission", + "AWS::ServiceCatalog::TagOption", + "AWS::ServiceDiscovery::PrivateDnsNamespace", + "AWS::ServiceCatalog::LaunchRoleConstraint", + "AWS::IoT::RoleAlias", + "AWS::SecretsManager::ResourcePolicy", + "AWS::CloudFormation::HookDefaultVersion", + "AWS::Config::ConfigRule", + "AWS::IoT::SoftwarePackageVersion", + "AWS::ImageBuilder::Workflow", + "AWS::ECS::TaskSet", + "AWS::AppSync::ApiKey", + "AWS::ACMPCA::CertificateAuthorityActivation", + "AWS::GuardDuty::ThreatIntelSet", + "AWS::EC2::VPC", + "AWS::ARCZonalShift::ZonalAutoshiftConfiguration", + "AWS::MSK::VpcConnection", + "AWS::DataSync::LocationAzureBlob", + "AWS::Logs::LogStream", + "AWS::Route53::RecordSetGroup", + "AWS::EC2::LocalGatewayRoute", + "AWS::OpsWorks::App", + "AWS::Kinesis::Stream", + "AWS::Batch::JobDefinition", + "AWS::IAM::SAMLProvider", + "AWS::CloudFront::KeyGroup", + "AWS::EC2::NetworkInterfaceAttachment", + "AWS::EC2::TransitGatewayAttachment", + "AWS::CodeDeploy::DeploymentConfig", + "AWS::StepFunctions::StateMachineVersion", + "AWS::ServiceCatalogAppRegistry::Application", + "AWS::Glue::Database", + "AWS::Neptune::DBCluster", + "AWS::Backup::BackupVault", + "AWS::EC2::CustomerGateway", + "AWS::IAM::GroupPolicy", + "AWS::Scheduler::Schedule", + "AWS::WAF::ByteMatchSet", + "AWS::EMRServerless::Application", + "AWS::EC2::Host", + "AWS::EC2::RouteTable", + "AWS::DataSync::LocationSMB", + "AWS::SecurityHub::Standard", + "AWS::SNS::TopicInlinePolicy", + "AWS::Redshift::ClusterParameterGroup", + "AWS::Organizations::Policy", + "AWS::Glue::Trigger", + "AWS::GlobalAccelerator::Listener", + "AWS::VerifiedPermissions::PolicyStore", + "AWS::EC2::VPCPeeringConnection", + "AWS::SNS::TopicPolicy", + "AWS::NetworkFirewall::RuleGroup", + "AWS::KMS::Key", + "AWS::ServiceCatalog::AcceptedPortfolioShare", + "AWS::Route53Resolver::FirewallRuleGroupAssociation", + "AWS::Route53Resolver::ResolverQueryLoggingConfig", + "AWS::EC2::SnapshotBlockPublicAccess", + "AWS::EC2::Subnet", + "AWS::CloudTrail::ResourcePolicy", + "AWS::S3ObjectLambda::AccessPoint", + "AWS::WAF::Rule", + "AWS::ElasticBeanstalk::ConfigurationTemplate", + "AWS::SQS::QueuePolicy", + "AWS::AppSync::DomainNameApiAssociation", + "AWS::AppSync::ApiCache", + "AWS::ApiGateway::Account", + "AWS::WAFv2::WebACL", + "AWS::GlobalAccelerator::EndpointGroup", + "AWS::EC2::TransitGatewayConnect", + "AWS::EC2::SecurityGroup", + "AWS::OpsWorks::Volume", + "AWS::IAM::UserToGroupAddition", + "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", + "AWS::EC2::VPNGatewayRoutePropagation", + "AWS::Glue::Crawler", + "AWS::CloudFront::Function", + "AWS::ApiGateway::Method", + "AWS::SSM::PatchBaseline", + "AWS::ServiceDiscovery::Service", + "AWS::CloudFront::MonitoringSubscription", + "AWS::EFS::MountTarget", + "AWS::EC2::VPNConnection", + "AWS::WAF::WebACL", + "AWS::ServiceDiscovery::PublicDnsNamespace", + "AWS::Shield::ProtectionGroup", + "AWS::IAM::User", + "AWS::EMR::InstanceGroupConfig", + "AWS::MediaConnect::Flow", + "AWS::StepFunctions::Activity", + "AWS::Synthetics::Group", + "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "AWS::Logs::AccountPolicy", + "AWS::S3::BucketPolicy", + "AWS::AppSync::GraphQLSchema", + "AWS::IoT::CustomMetric", + "AWS::Redshift::Cluster", + "AWS::EMR::InstanceFleetConfig", + "AWS::EMR::Cluster", + "AWS::RDS::DBCluster", + "AWS::ServiceCatalog::ResourceUpdateConstraint", + "AWS::Transfer::Agreement", + "AWS::Chatbot::SlackChannelConfiguration", + "AWS::CloudFront::Distribution", + "AWS::ElastiCache::SubnetGroup", + "AWS::XRay::Group", + "AWS::Oam::Link", + "AWS::IoT::DomainConfiguration", + "AWS::ElasticLoadBalancingV2::TrustStoreRevocation", + "AWS::EventSchemas::Schema", + "AWS::KMS::ReplicaKey", + "AWS::Redshift::ClusterSecurityGroup", + "AWS::ECR::PullThroughCacheRule", + "AWS::Glue::MLTransform", + "AWS::DataSync::LocationEFS", + "AWS::EC2::LocalGatewayRouteTable", + "AWS::ApiGateway::Resource", + "AWS::SageMaker::AppImageConfig", + "AWS::ElasticLoadBalancingV2::TargetGroup", + "AWS::ApplicationAutoScaling::ScalingPolicy", + "AWS::Pipes::Pipe", + "AWS::CloudFormation::Macro", + "AWS::Lambda::LayerVersionPermission", + "AWS::SecretsManager::Secret", + "AWS::Route53Resolver::ResolverConfig", + "AWS::ElastiCache::User", + "AWS::SageMaker::Image", + "AWS::Logs::SubscriptionFilter", + "AWS::CodeDeploy::Application", + "AWS::IoT::TopicRule", + "AWS::LakeFormation::PrincipalPermissions", + "AWS::DataSync::LocationS3", + "AWS::AutoScaling::LifecycleHook", + "AWS::FSx::DataRepositoryAssociation", + "AWS::EC2::NetworkInterface", + "AWS::AppSync::Resolver", + "AWS::ControlTower::LandingZone", + "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation", + "AWS::ImageBuilder::LifecyclePolicy", + "AWS::Lambda::EventInvokeConfig", + "AWS::MediaConnect::FlowOutput", + "AWS::Lambda::LayerVersion", + "AWS::RDS::OptionGroup", + "AWS::OpsWorks::UserProfile", + "AWS::ServiceCatalog::Portfolio", + "AWS::IoT::Policy", + "AWS::EC2::TransitGatewayRoute", + "AWS::SSM::MaintenanceWindow", + "AWS::LakeFormation::TagAssociation", + "AWS::EC2::IPAMResourceDiscovery", + "AWS::DataSync::StorageSystem", + "AWS::ImageBuilder::InfrastructureConfiguration", + "AWS::IoT::Logging", + "AWS::CloudFormation::WaitCondition", + "AWS::Route53Resolver::ResolverEndpoint", + "AWS::IoT::ScheduledAudit", + "AWS::CloudWatch::AnomalyDetector", + "AWS::EC2::SubnetNetworkAclAssociation", + "AWS::ServiceCatalog::ServiceAction", + "AWS::IAM::UserPolicy", + "AWS::CloudFront::OriginAccessControl", + "AWS::IoT::MitigationAction", + "AWS::SecretsManager::RotationSchedule", + "AWS::Lambda::Permission", + "AWS::EKS::IdentityProviderConfig", + "AWS::EC2::IPAMResourceDiscoveryAssociation", + "AWS::ServiceCatalogAppRegistry::AttributeGroup", + "AWS::AppSync::GraphQLApi", + "AWS::EC2::EgressOnlyInternetGateway", + "AWS::EC2::VPCCidrBlock", + "AWS::ACMPCA::CertificateAuthority", + "AWS::Athena::PreparedStatement", + "AWS::AutoScaling::ScheduledAction", + "AWS::LakeFormation::Resource", + "AWS::EC2::IPAMScope", + "AWS::DirectoryService::SimpleAD", + "AWS::EC2::VPCEndpoint", + "AWS::RDS::EventSubscription", + "AWS::Config::AggregationAuthorization", + "AWS::DataSync::Agent", + "AWS::IoT::Dimension", + "AWS::Logs::LogGroup", + "AWS::ECS::Cluster", + "AWS::PCAConnectorAD::Template", + "AWS::EC2::PlacementGroup", + "AWS::Organizations::Account", + "AWS::ECR::Repository", + "AWS::IoT::FleetMetric", + "AWS::MediaConnect::FlowSource", + "AWS::AppConfig::Extension", + "AWS::ElasticLoadBalancingV2::ListenerRule", + "AWS::ElasticLoadBalancingV2::TrustStore", + "AWS::EC2::KeyPair", + "AWS::FSx::FileSystem", + "AWS::EC2::EIPAssociation", + "AWS::ElasticBeanstalk::Application", + "AWS::IoT::ThingPrincipalAttachment", + "AWS::EC2::CapacityReservation", + "AWS::ElasticLoadBalancing::LoadBalancer", + "AWS::IAM::RolePolicy", + "AWS::StepFunctions::StateMachine", + "AWS::RDS::DBClusterParameterGroup", + "AWS::WAF::XssMatchSet", + "AWS::IoT::CertificateProvider", + "AWS::Scheduler::ScheduleGroup", + "AWS::EventSchemas::RegistryPolicy", + "AWS::Route53::KeySigningKey", + "AWS::EventSchemas::Registry", + "AWS::Events::Connection", + "AWS::Athena::DataCatalog", + "AWS::MediaConnect::FlowVpcInterface", + "AWS::Glue::Workflow", + "AWS::IoT::AccountAuditConfiguration", + "AWS::SageMaker::UserProfile", + "AWS::EC2::PrefixList", + "AWS::EC2::Instance", + "AWS::EC2::SubnetCidrBlock", + "AWS::ElasticBeanstalk::ApplicationVersion", + "AWS::WAF::SqlInjectionMatchSet", + "AWS::EC2::TransitGatewayVpcAttachment", + "AWS::EC2::FlowLog", + "AWS::AmazonMQ::Broker", + "AWS::EMR::Step", + "AWS::SSM::Association", + "AWS::CloudFront::ResponseHeadersPolicy", + "AWS::SecurityHub::AutomationRule", + "AWS::MSK::ClusterPolicy", + "AWS::GuardDuty::Master", + "AWS::KMS::Alias", + "AWS::XRay::SamplingRule", + "AWS::Route53Resolver::ResolverRule", + "AWS::Transfer::Connector", + "AWS::ApiGateway::DocumentationVersion", + "AWS::WAFv2::WebACLAssociation", + "AWS::Oam::Sink", + "AWS::ApiGateway::GatewayResponse", + "AWS::Route53Resolver::OutpostResolver", + "AWS::ACMPCA::Certificate", + "AWS::EC2::IPAMAllocation", + "AWS::WorkSpaces::Workspace", + "AWS::EMR::Studio", + "AWS::EC2::InstanceConnectEndpoint", + "AWS::DirectoryService::MicrosoftAD", + "AWS::AppSync::SourceApiAssociation", + "AWS::DataSync::LocationObjectStorage", + "AWS::ECS::CapacityProvider", + "AWS::ElastiCache::CacheCluster", + "AWS::SageMaker::ModelCard", + "AWS::Logs::Destination", + "AWS::EKS::Nodegroup", + "AWS::Organizations::OrganizationalUnit", + "AWS::AppSync::DataSource", + "AWS::SQS::Queue", + "AWS::EC2::SecurityGroupIngress", + "AWS::GuardDuty::Detector", + "AWS::IoT::ProvisioningTemplate", + "AWS::ApiGateway::Stage", + "AWS::Batch::ComputeEnvironment", + "AWS::DataPipeline::Pipeline", + "AWS::IoT::Thing", + "AWS::Route53::HealthCheck", + "AWS::Athena::NamedQuery", + "AWS::ApiGateway::Deployment", + "AWS::LakeFormation::DataLakeSettings", + "AWS::AutoScaling::ScalingPolicy", + "AWS::ECR::RegistryPolicy", + "AWS::RDS::DBSecurityGroup", + "AWS::CloudWatch::MetricStream", + "AWS::SSM::Parameter", + "AWS::Config::DeliveryChannel", + "AWS::IAM::OIDCProvider", + "AWS::LakeFormation::Tag", + "AWS::CE::AnomalyMonitor", + "AWS::ServiceCatalogAppRegistry::ResourceAssociation", + "AWS::EC2::VPNGateway", + "AWS::CloudFormation::Stack", + "AWS::ResourceGroups::Group", + "AWS::CloudFormation::ResourceDefaultVersion", + "AWS::Backup::RestoreTestingPlan", + "AWS::ServiceCatalog::TagOptionAssociation", + "AWS::EC2::IPAM", + "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", + "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::CloudFront::CachePolicy", + "AWS::IAM::AccessKey", + "AWS::RDS::DBSubnetGroup", + "AWS::SecretsManager::SecretTargetAttachment", + "AWS::AmazonMQ::Configuration", + "AWS::CodePipeline::CustomActionType", + "AWS::AccessAnalyzer::Analyzer", + "AWS::EC2::EC2Fleet", + "AWS::ServiceCatalog::CloudFormationProduct", + "AWS::EC2::VPCEndpointService", + "AWS::IAM::ManagedPolicy", + "AWS::EC2::LaunchTemplate", + "AWS::CloudFront::OriginRequestPolicy", + "AWS::DataSync::LocationFSxONTAP", + "AWS::PCAConnectorAD::ServicePrincipalName", + "AWS::ElasticBeanstalk::Environment", + "AWS::Lambda::Version", + "AWS::EC2::DHCPOptions", + "AWS::EC2::IPAMPool", + "AWS::Kinesis::StreamConsumer", + "AWS::IAM::ServiceLinkedRole", + "AWS::CloudFormation::HookTypeConfig", + "AWS::EC2::Volume", + "AWS::IoT::Certificate", + "AWS::EC2::EIP", + "AWS::VerifiedPermissions::Policy", + "AWS::CloudFormation::ResourceVersion", + "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", + "AWS::RDS::DBParameterGroup", + "AWS::SecurityHub::Hub", + "AWS::S3::AccessPoint", + "AWS::Batch::JobQueue", + "AWS::ElasticLoadBalancingV2::Listener", + "AWS::CloudFormation::WaitConditionHandle", + "AWS::GlobalAccelerator::Accelerator", + "AWS::EKS::Addon", +] + +# pylint: disable=too-many-lines +cached: List[str] = [ + "aws-ce-anomalysubscription.json", + "aws-shield-drtaccess.json", + "aws-glue-partition.json", + "aws-ec2-transitgatewayroutetablepropagation.json", + "aws-shield-proactiveengagement.json", + "aws-guardduty-filter.json", + "aws-ecs-service.json", + "aws-dms-replicationconfig.json", + "aws-dynamodb-table.json", + "aws-ec2-securitygroupegress.json", + "aws-ec2-localgatewayroutetablevpcassociation.json", + "aws-glue-dataqualityruleset.json", + "aws-config-configurationrecorder.json", + "aws-ec2-networkperformancemetricsubscription.json", + "aws-cloudfront-continuousdeploymentpolicy.json", + "aws-ecr-replicationconfiguration.json", + "aws-appconfig-extensionassociation.json", + "aws-ec2-ipampoolcidr.json", + "aws-iot-topicruledestination.json", + "aws-ec2-vpcdhcpoptionsassociation.json", + "aws-ec2-networkacl.json", + "aws-lambda-eventsourcemapping.json", + "aws-logs-resourcepolicy.json", + "aws-servicecatalog-launchnotificationconstraint.json", + "aws-iot-cacertificate.json", + "aws-ec2-networkaclentry.json", + "aws-transfer-certificate.json", + "aws-cloudwatch-compositealarm.json", + "aws-route53resolver-firewalldomainlist.json", + "aws-appconfig-application.json", + "aws-datasync-locationfsxwindows.json", + "aws-autoscaling-warmpool.json", + "aws-applicationautoscaling-scalabletarget.json", + "aws-config-storedquery.json", + "aws-acmpca-permission.json", + "aws-ecs-primarytaskset.json", + "aws-fms-resourceset.json", + "aws-autoscaling-autoscalinggroup.json", + "aws-wafv2-regexpatternset.json", + "aws-eks-fargateprofile.json", + "aws-route53-dnssec.json", + "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", + "aws-route53-recordset.json", + "aws-eks-accessentry.json", + "aws-elasticache-securitygroup.json", + "aws-cloudtrail-eventdatastore.json", + "aws-kinesisfirehose-deliverystream.json", + "aws-pcaconnectorad-directoryregistration.json", + "aws-imagebuilder-component.json", + "aws-mediaconnect-flowentitlement.json", + "aws-glue-connection.json", + "aws-iam-group.json", + "aws-organizations-resourcepolicy.json", + "aws-ec2-transitgatewaymulticastgroupsource.json", + "aws-transfer-profile.json", + "aws-appsync-domainname.json", + "aws-fms-policy.json", + "aws-cloudfront-realtimelogconfig.json", + "aws-cloudtrail-channel.json", + "aws-lakeformation-datacellsfilter.json", + "aws-datasync-locationhdfs.json", + "aws-events-archive.json", + "aws-msk-cluster.json", + "aws-ec2-vpcendpointconnectionnotification.json", + "aws-codepipeline-pipeline.json", + "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", + "aws-elasticloadbalancingv2-listenercertificate.json", + "aws-route53resolver-resolverruleassociation.json", + "aws-synthetics-canary.json", + "aws-backup-restoretestingselection.json", + "aws-sns-subscription.json", + "aws-ec2-natgateway.json", + "aws-internetmonitor-monitor.json", + "aws-transfer-workflow.json", + "aws-glue-devendpoint.json", + "aws-eventschemas-discoverer.json", + "aws-elasticache-usergroup.json", + "aws-iot-thinggroup.json", + "aws-imagebuilder-imagerecipe.json", + "aws-iot-softwarepackage.json", + "aws-opsworks-elasticloadbalancerattachment.json", + "aws-s3objectlambda-accesspointpolicy.json", + "aws-elasticache-replicationgroup.json", + "aws-stepfunctions-statemachinealias.json", + "aws-rds-globalcluster.json", + "aws-glue-job.json", + "aws-eks-podidentityassociation.json", + "aws-glue-table.json", + "aws-sagemaker-inferencecomponent.json", + "aws-logs-metricfilter.json", + "aws-lambda-function.json", + "aws-sns-topic.json", + "aws-backup-backupselection.json", + "aws-datasync-locationfsxlustre.json", + "aws-sagemaker-app.json", + "aws-ec2-vpcgatewayattachment.json", + "aws-cloudtrail-trail.json", + "aws-ec2-vpnconnectionroute.json", + "aws-ec2-internetgateway.json", + "aws-wafv2-ipset.json", + "aws-ssm-document.json", + "aws-iam-role.json", + "aws-events-apidestination.json", + "aws-elasticache-serverlesscache.json", + "aws-cloudfront-cloudfrontoriginaccessidentity.json", + "aws-autoscaling-launchconfiguration.json", + "aws-kinesisanalyticsv2-application.json", + "aws-lambda-alias.json", + "aws-logs-loganomalydetector.json", + "aws-ec2-transitgatewaymulticastdomainassociation.json", + "aws-ec2-transitgatewayroutetableassociation.json", + "aws-imagebuilder-image.json", + "aws-elasticache-securitygroupingress.json", + "aws-cloudwatch-dashboard.json", + "aws-cloudwatch-alarm.json", + "aws-iot-thingtype.json", + "aws-guardduty-member.json", + "aws-cloudformation-customresource.json", + "aws-elasticache-parametergroup.json", + "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", + "aws-cloudformation-stackset.json", + "aws-ec2-route.json", + "aws-cloudformation-hookversion.json", + "aws-xray-resourcepolicy.json", + "aws-iot-resourcespecificlogging.json", + "aws-servicecatalog-launchtemplateconstraint.json", + "aws-wafv2-loggingconfiguration.json", + "aws-backup-backupplan.json", + "aws-imagebuilder-distributionconfiguration.json", + "aws-lakeformation-permissions.json", + "aws-cloudfront-publickey.json", + "aws-pcaconnectorad-connector.json", + "aws-identitystore-group.json", + "aws-ram-permission.json", + "aws-datasync-task.json", + "aws-ecs-taskdefinition.json", + "aws-shield-protection.json", + "aws-identitystore-groupmembership.json", + "aws-appsync-functionconfiguration.json", + "aws-ec2-spotfleet.json", + "aws-fms-notificationchannel.json", + "aws-msk-batchscramsecret.json", + "aws-s3-bucket.json", + "aws-guardduty-ipset.json", + "aws-servicediscovery-httpnamespace.json", + "aws-emr-securityconfiguration.json", + "aws-cloudwatch-insightrule.json", + "aws-batch-schedulingpolicy.json", + "aws-iot-authorizer.json", + "aws-iot-jobtemplate.json", + "aws-athena-workgroup.json", + "aws-sagemaker-imageversion.json", + "aws-servicecatalog-portfolioshare.json", + "aws-iam-servercertificate.json", + "aws-iot-securityprofile.json", + "aws-events-eventbus.json", + "aws-sqs-queueinlinepolicy.json", + "aws-organizations-organization.json", + "aws-ssm-maintenancewindowtarget.json", + "aws-iam-policy.json", + "aws-rds-dbsecuritygroupingress.json", + "aws-ec2-transitgatewaymulticastgroupmember.json", + "aws-ec2-volumeattachment.json", + "aws-glue-securityconfiguration.json", + "aws-applicationinsights-application.json", + "aws-ecs-clustercapacityproviderassociations.json", + "aws-appconfig-configurationprofile.json", + "aws-route53resolver-firewallrulegroup.json", + "aws-msk-configuration.json", + "aws-ec2-transitgateway.json", + "aws-ec2-vpcendpointservicepermissions.json", + "aws-ssm-maintenancewindowtask.json", + "aws-ec2-transitgatewaymulticastdomain.json", + "aws-verifiedpermissions-policytemplate.json", + "aws-eks-cluster.json", + "aws-efs-filesystem.json", + "aws-logs-querydefinition.json", + "aws-iam-instanceprofile.json", + "aws-iot-billinggroup.json", + "aws-datasync-locationnfs.json", + "aws-sagemaker-domain.json", + "aws-certificatemanager-certificate.json", + "aws-sdb-domain.json", + "aws-ec2-subnetroutetableassociation.json", + "aws-servicecatalog-serviceactionassociation.json", + "aws-imagebuilder-containerrecipe.json", + "aws-efs-accesspoint.json", + "aws-redshift-clustersecuritygroupingress.json", + "aws-servicecatalogappregistry-attributegroupassociation.json", + "aws-opensearchservice-domain.json", + "aws-servicediscovery-instance.json", + "aws-elasticsearch-domain.json", + "aws-servicecatalog-stacksetconstraint.json", + "aws-servicecatalog-tagoption.json", + "aws-servicediscovery-privatednsnamespace.json", + "aws-servicecatalog-launchroleconstraint.json", + "aws-iot-rolealias.json", + "aws-secretsmanager-resourcepolicy.json", + "aws-cloudformation-hookdefaultversion.json", + "aws-config-configrule.json", + "aws-iot-softwarepackageversion.json", + "aws-imagebuilder-workflow.json", + "aws-ecs-taskset.json", + "aws-appsync-apikey.json", + "aws-acmpca-certificateauthorityactivation.json", + "aws-guardduty-threatintelset.json", + "aws-ec2-vpc.json", + "aws-arczonalshift-zonalautoshiftconfiguration.json", + "aws-msk-vpcconnection.json", + "aws-datasync-locationazureblob.json", + "aws-logs-logstream.json", + "aws-route53-recordsetgroup.json", + "aws-ec2-localgatewayroute.json", + "aws-opsworks-app.json", + "aws-kinesis-stream.json", + "aws-batch-jobdefinition.json", + "aws-iam-samlprovider.json", + "aws-cloudfront-keygroup.json", + "aws-ec2-networkinterfaceattachment.json", + "aws-codedeploy-deploymentconfig.json", + "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", + "aws-glue-database.json", + "aws-neptune-dbcluster.json", + "aws-backup-backupvault.json", + "aws-iam-grouppolicy.json", + "aws-scheduler-schedule.json", + "aws-waf-bytematchset.json", + "aws-emrserverless-application.json", + "aws-ec2-routetable.json", + "aws-datasync-locationsmb.json", + "aws-securityhub-standard.json", + "aws-sns-topicinlinepolicy.json", + "aws-organizations-policy.json", + "aws-glue-trigger.json", + "aws-globalaccelerator-listener.json", + "aws-verifiedpermissions-policystore.json", + "aws-ec2-vpcpeeringconnection.json", + "aws-sns-topicpolicy.json", + "aws-kms-key.json", + "aws-route53resolver-firewallrulegroupassociation.json", + "aws-route53resolver-resolverqueryloggingconfig.json", + "aws-ec2-snapshotblockpublicaccess.json", + "aws-cloudtrail-resourcepolicy.json", + "aws-s3objectlambda-accesspoint.json", + "aws-sqs-queuepolicy.json", + "aws-appsync-domainnameapiassociation.json", + "aws-appsync-apicache.json", + "aws-globalaccelerator-endpointgroup.json", + "aws-ec2-transitgatewayconnect.json", + "aws-ec2-securitygroup.json", + "aws-opsworks-volume.json", + "aws-iam-usertogroupaddition.json", + "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", + "aws-ec2-vpngatewayroutepropagation.json", + "aws-glue-crawler.json", + "aws-ssm-patchbaseline.json", + "aws-servicediscovery-service.json", + "aws-cloudfront-monitoringsubscription.json", + "aws-efs-mounttarget.json", + "aws-ec2-vpnconnection.json", + "aws-servicediscovery-publicdnsnamespace.json", + "aws-shield-protectiongroup.json", + "aws-iam-user.json", + "aws-emr-instancegroupconfig.json", + "aws-mediaconnect-flow.json", + "aws-synthetics-group.json", + "aws-ec2-localgatewayroutetablevirtualinterfacegroupassociation.json", + "aws-logs-accountpolicy.json", + "aws-s3-bucketpolicy.json", + "aws-appsync-graphqlschema.json", + "aws-iot-custommetric.json", + "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", + "aws-servicecatalog-resourceupdateconstraint.json", + "aws-transfer-agreement.json", + "aws-chatbot-slackchannelconfiguration.json", + "aws-cloudfront-distribution.json", + "aws-elasticache-subnetgroup.json", + "aws-xray-group.json", + "aws-oam-link.json", + "aws-iot-domainconfiguration.json", + "aws-elasticloadbalancingv2-truststorerevocation.json", + "aws-eventschemas-schema.json", + "aws-kms-replicakey.json", + "aws-redshift-clustersecuritygroup.json", + "aws-ecr-pullthroughcacherule.json", + "aws-glue-mltransform.json", + "aws-datasync-locationefs.json", + "aws-ec2-localgatewayroutetable.json", + "aws-sagemaker-appimageconfig.json", + "aws-elasticloadbalancingv2-targetgroup.json", + "aws-applicationautoscaling-scalingpolicy.json", + "aws-pipes-pipe.json", + "aws-cloudformation-macro.json", + "aws-lambda-layerversionpermission.json", + "aws-secretsmanager-secret.json", + "aws-route53resolver-resolverconfig.json", + "aws-elasticache-user.json", + "aws-sagemaker-image.json", + "aws-logs-subscriptionfilter.json", + "aws-codedeploy-application.json", + "aws-iot-topicrule.json", + "aws-lakeformation-principalpermissions.json", + "aws-datasync-locations3.json", + "aws-autoscaling-lifecyclehook.json", + "aws-fsx-datarepositoryassociation.json", + "aws-appsync-resolver.json", + "aws-controltower-landingzone.json", + "aws-route53resolver-resolverqueryloggingconfigassociation.json", + "aws-imagebuilder-lifecyclepolicy.json", + "aws-lambda-eventinvokeconfig.json", + "aws-mediaconnect-flowoutput.json", + "aws-lambda-layerversion.json", + "aws-rds-optiongroup.json", + "aws-opsworks-userprofile.json", + "aws-iot-policy.json", + "aws-ssm-maintenancewindow.json", + "aws-lakeformation-tagassociation.json", + "aws-ec2-ipamresourcediscovery.json", + "aws-datasync-storagesystem.json", + "aws-imagebuilder-infrastructureconfiguration.json", + "aws-iot-logging.json", + "aws-route53resolver-resolverendpoint.json", + "aws-iot-scheduledaudit.json", + "aws-cloudwatch-anomalydetector.json", + "aws-ec2-subnetnetworkaclassociation.json", + "aws-servicecatalog-serviceaction.json", + "aws-iam-userpolicy.json", + "aws-cloudfront-originaccesscontrol.json", + "aws-iot-mitigationaction.json", + "aws-secretsmanager-rotationschedule.json", + "aws-eks-identityproviderconfig.json", + "aws-ec2-ipamresourcediscoveryassociation.json", + "aws-servicecatalogappregistry-attributegroup.json", + "aws-ec2-egressonlyinternetgateway.json", + "aws-ec2-vpccidrblock.json", + "aws-acmpca-certificateauthority.json", + "aws-athena-preparedstatement.json", + "aws-autoscaling-scheduledaction.json", + "aws-lakeformation-resource.json", + "aws-ec2-ipamscope.json", + "aws-ec2-vpcendpoint.json", + "aws-rds-eventsubscription.json", + "aws-config-aggregationauthorization.json", + "aws-datasync-agent.json", + "aws-iot-dimension.json", + "aws-logs-loggroup.json", + "aws-pcaconnectorad-template.json", + "aws-ec2-placementgroup.json", + "aws-organizations-account.json", + "aws-ecr-repository.json", + "aws-iot-fleetmetric.json", + "aws-mediaconnect-flowsource.json", + "aws-appconfig-extension.json", + "aws-elasticloadbalancingv2-truststore.json", + "aws-fsx-filesystem.json", + "aws-ec2-eipassociation.json", + "aws-ec2-capacityreservation.json", + "aws-elasticloadbalancing-loadbalancer.json", + "aws-iam-rolepolicy.json", + "aws-stepfunctions-statemachine.json", + "aws-rds-dbclusterparametergroup.json", + "aws-iot-certificateprovider.json", + "aws-scheduler-schedulegroup.json", + "aws-eventschemas-registrypolicy.json", + "aws-route53-keysigningkey.json", + "aws-eventschemas-registry.json", + "aws-events-connection.json", + "aws-athena-datacatalog.json", + "aws-mediaconnect-flowvpcinterface.json", + "aws-glue-workflow.json", + "aws-iot-accountauditconfiguration.json", + "aws-sagemaker-userprofile.json", + "aws-ec2-prefixlist.json", + "aws-ec2-instance.json", + "aws-ec2-subnetcidrblock.json", + "aws-waf-sqlinjectionmatchset.json", + "aws-ec2-transitgatewayvpcattachment.json", + "aws-ec2-flowlog.json", + "aws-amazonmq-broker.json", + "aws-emr-step.json", + "aws-ssm-association.json", + "aws-cloudfront-responseheaderspolicy.json", + "aws-securityhub-automationrule.json", + "aws-msk-clusterpolicy.json", + "aws-xray-samplingrule.json", + "aws-route53resolver-resolverrule.json", + "aws-transfer-connector.json", + "aws-wafv2-webaclassociation.json", + "aws-oam-sink.json", + "aws-route53resolver-outpostresolver.json", + "aws-acmpca-certificate.json", + "aws-ec2-ipamallocation.json", + "aws-workspaces-workspace.json", + "aws-ec2-instanceconnectendpoint.json", + "aws-appsync-sourceapiassociation.json", + "aws-datasync-locationobjectstorage.json", + "aws-ecs-capacityprovider.json", + "aws-elasticache-cachecluster.json", + "aws-sagemaker-modelcard.json", + "aws-logs-destination.json", + "aws-eks-nodegroup.json", + "aws-organizations-organizationalunit.json", + "aws-appsync-datasource.json", + "aws-sqs-queue.json", + "aws-ec2-securitygroupingress.json", + "aws-guardduty-detector.json", + "aws-iot-provisioningtemplate.json", + "aws-batch-computeenvironment.json", + "aws-iot-thing.json", + "aws-athena-namedquery.json", + "aws-lakeformation-datalakesettings.json", + "aws-autoscaling-scalingpolicy.json", + "aws-rds-dbsecuritygroup.json", + "aws-cloudwatch-metricstream.json", + "aws-ssm-parameter.json", + "aws-config-deliverychannel.json", + "aws-iam-oidcprovider.json", + "aws-lakeformation-tag.json", + "aws-ce-anomalymonitor.json", + "aws-servicecatalogappregistry-resourceassociation.json", + "aws-cloudformation-stack.json", + "aws-resourcegroups-group.json", + "aws-cloudformation-resourcedefaultversion.json", + "aws-backup-restoretestingplan.json", + "aws-ec2-ipam.json", + "aws-pcaconnectorad-templategroupaccesscontrolentry.json", + "aws-ec2-transitgatewaypeeringattachment.json", + "aws-cloudfront-cachepolicy.json", + "aws-rds-dbsubnetgroup.json", + "aws-amazonmq-configuration.json", + "aws-accessanalyzer-analyzer.json", + "aws-ec2-ec2fleet.json", + "aws-servicecatalog-cloudformationproduct.json", + "aws-ec2-vpcendpointservice.json", + "aws-iam-managedpolicy.json", + "aws-ec2-launchtemplate.json", + "aws-cloudfront-originrequestpolicy.json", + "aws-datasync-locationfsxontap.json", + "aws-pcaconnectorad-serviceprincipalname.json", + "aws-lambda-version.json", + "aws-ec2-dhcpoptions.json", + "aws-ec2-ipampool.json", + "aws-iam-servicelinkedrole.json", + "aws-cloudformation-hooktypeconfig.json", + "aws-ec2-volume.json", + "aws-iot-certificate.json", + "aws-ec2-eip.json", + "aws-verifiedpermissions-policy.json", + "aws-cloudformation-resourceversion.json", + "aws-chatbot-microsoftteamschannelconfiguration.json", + "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", + "aws-s3-accesspoint.json", + "aws-batch-jobqueue.json", + "aws-elasticloadbalancingv2-listener.json", + "aws-cloudformation-waitconditionhandle.json", + "aws-globalaccelerator-accelerator.json", + "aws-eks-addon.json", +] diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-amazonmq-configurationassociation.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-amazonmq-configurationassociation.json new file mode 100644 index 0000000000..2a5ccb1b3b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-amazonmq-configurationassociation.json @@ -0,0 +1,47 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Broker" + ], + "definitions": { + "ConfigurationId": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Revision": { + "type": "integer" + } + }, + "required": [ + "Revision", + "Id" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Broker": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/ConfigurationId" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Broker", + "Configuration" + ], + "typeName": "AWS::AmazonMQ::ConfigurationAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-account.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-account.json new file mode 100644 index 0000000000..2fb72e9114 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-account.json @@ -0,0 +1,19 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::ApiGateway::Account", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CloudWatchRoleArn": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::Account" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-apikey.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-apikey.json new file mode 100644 index 0000000000..bbc59b7abb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-apikey.json @@ -0,0 +1,83 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/GenerateDistinctId", + "/properties/Value" + ], + "definitions": { + "StageKey": { + "additionalProperties": false, + "properties": { + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ApiKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CustomerId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "GenerateDistinctId": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StageKeys": { + "items": { + "$ref": "#/definitions/StageKey" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Value": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ApiKey" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-authorizer.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-authorizer.json new file mode 100644 index 0000000000..9f8245e3e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-authorizer.json @@ -0,0 +1,64 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Authorizer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AuthType": { + "type": "string" + }, + "AuthorizerCredentials": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "maximum": 3600, + "minimum": 0, + "type": "integer" + }, + "AuthorizerUri": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IdentitySource": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProviderARNs": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "Type": { + "enum": [ + "TOKEN", + "REQUEST", + "COGNITO_USER_POOLS" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-basepathmapping.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-basepathmapping.json new file mode 100644 index 0000000000..366b329398 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-basepathmapping.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/BasePath", + "/properties/DomainName" + ], + "description": "Resource Type definition for AWS::ApiGateway::BasePathMapping", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BasePath": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::BasePathMapping" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-clientcertificate.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-clientcertificate.json new file mode 100644 index 0000000000..021bfd6a85 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-clientcertificate.json @@ -0,0 +1,44 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::ClientCertificate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::ClientCertificate" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-deployment.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-deployment.json new file mode 100644 index 0000000000..70dba1a1c0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-deployment.json @@ -0,0 +1,220 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeploymentCanarySettings", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "DeploymentCanarySettings": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "StageDescription": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "MetricsEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Deployment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DeploymentCanarySettings": { + "$ref": "#/definitions/DeploymentCanarySettings" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StageDescription": { + "$ref": "#/definitions/StageDescription" + }, + "StageName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Deployment" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-documentationpart.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-documentationpart.json new file mode 100644 index 0000000000..c387182671 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-documentationpart.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Location", + "/properties/RestApiId" + ], + "definitions": { + "Location": { + "additionalProperties": false, + "properties": { + "Method": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "StatusCode": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DocumentationPart", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/Location" + }, + "Properties": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId", + "Properties", + "Location" + ], + "typeName": "AWS::ApiGateway::DocumentationPart" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-documentationversion.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-documentationversion.json new file mode 100644 index 0000000000..6c3162fd9b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-documentationversion.json @@ -0,0 +1,33 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DocumentationVersion", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::DocumentationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DocumentationVersion", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::DocumentationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-domainname.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-domainname.json new file mode 100644 index 0000000000..c571bde8c2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-domainname.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainName" + ], + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::DomainName", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CertificateArn": { + "type": "string" + }, + "DistributionDomainName": { + "type": "string" + }, + "DistributionHostedZoneId": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "Id": { + "type": "string" + }, + "RegionalCertificateArn": { + "type": "string" + }, + "RegionalDomainName": { + "type": "string" + }, + "RegionalHostedZoneId": { + "type": "string" + }, + "SecurityPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/DistributionDomainName", + "/properties/RegionalDomainName", + "/properties/Id", + "/properties/DistributionHostedZoneId", + "/properties/RegionalHostedZoneId" + ], + "required": [ + "DomainName" + ], + "typeName": "AWS::ApiGateway::DomainName" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-gatewayresponse.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-gatewayresponse.json new file mode 100644 index 0000000000..13fa8c2dba --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-gatewayresponse.json @@ -0,0 +1,72 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResponseType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::GatewayResponse", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "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": [ + "RestApiId", + "ResponseType" + ], + "typeName": "AWS::ApiGateway::GatewayResponse" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-method.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-method.json new file mode 100644 index 0000000000..c895cf0160 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-method.json @@ -0,0 +1,208 @@ +{ + "additionalProperties": false, + "definitions": { + "Integration": { + "additionalProperties": false, + "properties": { + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "CacheNamespace": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandling": { + "type": "string" + }, + "Credentials": { + "type": "string" + }, + "IntegrationHttpMethod": { + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/IntegrationResponse" + }, + "type": "array", + "uniqueItems": true + }, + "PassthroughBehavior": { + "type": "string" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "TimeoutInMillis": { + "type": "integer" + }, + "Type": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, + "IntegrationResponse": { + "additionalProperties": false, + "properties": { + "ContentHandling": { + "type": "string" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "SelectionPattern": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "MethodResponse": { + "additionalProperties": false, + "properties": { + "ResponseModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Method", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/MethodResponse" + }, + "type": "array", + "uniqueItems": true + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "RequestParameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "boolean" + } + }, + "type": "object" + }, + "RequestValidatorId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ResourceId", + "RestApiId", + "HttpMethod" + ], + "typeName": "AWS::ApiGateway::Method" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-model.json new file mode 100644 index 0000000000..f93e5b8eb8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-model.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/ContentType", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Model", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Schema": { + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Model" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-requestvalidator.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-requestvalidator.json new file mode 100644 index 0000000000..65d76759ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-requestvalidator.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::RequestValidator", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "ValidateRequestBody": { + "type": "boolean" + }, + "ValidateRequestParameters": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::RequestValidator" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-resource.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-resource.json new file mode 100644 index 0000000000..d99746d395 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-resource.json @@ -0,0 +1,35 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PathPart", + "/properties/ParentId", + "/properties/RestApiId" + ], + "description": "Resource Type definition for AWS::ApiGateway::Resource", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "PathPart": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParentId", + "PathPart", + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Resource" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-restapi.json new file mode 100644 index 0000000000..857b4a9c90 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-restapi.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "definitions": { + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Types": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::RestApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiKeySourceType": { + "enum": [ + "HEADER", + "AUTHORIZER" + ], + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Body": { + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "MinimumCompressionSize": { + "type": "integer" + }, + "Mode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "type": "object" + }, + "RootResourceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/RootResourceId" + ], + "typeName": "AWS::ApiGateway::RestApi" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-stage.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-stage.json new file mode 100644 index 0000000000..715adbbabd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-stage.json @@ -0,0 +1,167 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StageName", + "/properties/RestApiId" + ], + "definitions": { + "AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + }, + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "CanarySetting": { + "additionalProperties": false, + "properties": { + "DeploymentId": { + "type": "string" + }, + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" + }, + "CacheTtlInSeconds": { + "type": "integer" + }, + "CachingEnabled": { + "type": "boolean" + }, + "DataTraceEnabled": { + "type": "boolean" + }, + "HttpMethod": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "integer" + }, + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::Stage", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AccessLogSetting" + }, + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { + "type": "string" + }, + "CanarySetting": { + "$ref": "#/definitions/CanarySetting" + }, + "ClientCertificateId": { + "type": "string" + }, + "DeploymentId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/MethodSetting" + }, + "type": "array", + "uniqueItems": true + }, + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RestApiId" + ], + "typeName": "AWS::ApiGateway::Stage" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-usageplan.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-usageplan.json new file mode 100644 index 0000000000..73b66424f8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-usageplan.json @@ -0,0 +1,107 @@ +{ + "additionalProperties": false, + "definitions": { + "ApiStage": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "Throttle": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "$ref": "#/definitions/ThrottleSettings" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "QuotaSettings": { + "additionalProperties": false, + "properties": { + "Limit": { + "type": "integer" + }, + "Offset": { + "type": "integer" + }, + "Period": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "ThrottleSettings": { + "additionalProperties": false, + "properties": { + "BurstLimit": { + "type": "integer" + }, + "RateLimit": { + "type": "number" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::UsagePlan", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApiStages": { + "items": { + "$ref": "#/definitions/ApiStage" + }, + "type": "array", + "uniqueItems": true + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Quota": { + "$ref": "#/definitions/QuotaSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Throttle": { + "$ref": "#/definitions/ThrottleSettings" + }, + "UsagePlanName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ApiGateway::UsagePlan" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-usageplankey.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-usageplankey.json new file mode 100644 index 0000000000..6454c66f61 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-usageplankey.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyType", + "/properties/UsagePlanId", + "/properties/KeyId" + ], + "description": "Resource Type definition for AWS::ApiGateway::UsagePlanKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "KeyId": { + "type": "string" + }, + "KeyType": { + "enum": [ + "API_KEY" + ], + "type": "string" + }, + "UsagePlanId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "KeyType", + "UsagePlanId", + "KeyId" + ], + "typeName": "AWS::ApiGateway::UsagePlanKey" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-vpclink.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-vpclink.json new file mode 100644 index 0000000000..019f5635d9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-apigateway-vpclink.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetArns" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ApiGateway::VpcLink", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TargetArns", + "Name" + ], + "typeName": "AWS::ApiGateway::VpcLink" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-appsync-graphqlapi.json new file mode 100644 index 0000000000..077c3fd5af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-appsync-graphqlapi.json @@ -0,0 +1,222 @@ +{ + "additionalProperties": false, + "definitions": { + "AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::AppSync::GraphQLApi", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AdditionalAuthenticationProvider" + }, + "type": "array", + "uniqueItems": false + }, + "ApiId": { + "type": "string" + }, + "ApiType": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "AuthenticationType": { + "enum": [ + "API_KEY", + "AWS_IAM", + "AMAZON_COGNITO_USER_POOLS", + "OPENID_CONNECT", + "AWS_LAMBDA" + ], + "type": "string" + }, + "GraphQLDns": { + "type": "string" + }, + "GraphQLEndpointArn": { + "type": "string" + }, + "GraphQLUrl": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/LogConfig" + }, + "MergedApiExecutionRoleArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/OpenIDConnectConfig" + }, + "OwnerContact": { + "type": "string" + }, + "RealtimeDns": { + "type": "string" + }, + "RealtimeUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UserPoolConfig": { + "$ref": "#/definitions/UserPoolConfig" + }, + "Visibility": { + "type": "string" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "readOnlyProperties": [ + "/properties/ApiId", + "/properties/GraphQLEndpointArn", + "/properties/Id", + "/properties/GraphQLDns", + "/properties/GraphQLUrl", + "/properties/RealtimeDns", + "/properties/RealtimeUrl", + "/properties/Arn" + ], + "required": [ + "Name", + "AuthenticationType" + ], + "typeName": "AWS::AppSync::GraphQLApi" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-cloudformation-waitcondition.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-cloudformation-waitcondition.json new file mode 100644 index 0000000000..822d109c45 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-cloudformation-waitcondition.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::CloudFormation::WaitCondition", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Count": { + "type": "integer" + }, + "Data": { + "type": "object" + }, + "Handle": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Timeout": { + "maximum": 43200, + "minimum": 0, + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Data" + ], + "typeName": "AWS::CloudFormation::WaitCondition" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-codepipeline-customactiontype.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-codepipeline-customactiontype.json new file mode 100644 index 0000000000..6ab4bff7bf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-codepipeline-customactiontype.json @@ -0,0 +1,154 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ConfigurationProperties", + "/properties/OutputArtifactDetails", + "/properties/Version", + "/properties/InputArtifactDetails", + "/properties/Settings", + "/properties/Provider", + "/properties/Category" + ], + "definitions": { + "ArtifactDetails": { + "additionalProperties": false, + "properties": { + "MaximumCount": { + "type": "integer" + }, + "MinimumCount": { + "type": "integer" + } + }, + "required": [ + "MinimumCount", + "MaximumCount" + ], + "type": "object" + }, + "ConfigurationProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Key": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { + "enum": [ + "String", + "Number", + "Boolean" + ], + "type": "string" + } + }, + "required": [ + "Secret", + "Required", + "Key", + "Name" + ], + "type": "object" + }, + "Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CodePipeline::CustomActionType", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { + "items": { + "$ref": "#/definitions/ConfigurationProperties" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/ArtifactDetails" + }, + "Provider": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/Settings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Category", + "InputArtifactDetails", + "Version", + "OutputArtifactDetails", + "Provider" + ], + "typeName": "AWS::CodePipeline::CustomActionType" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-datapipeline-pipeline.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-datapipeline-pipeline.json new file mode 100644 index 0000000000..d2d735d9b1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-datapipeline-pipeline.json @@ -0,0 +1,173 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Description" + ], + "definitions": { + "Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "StringValue", + "Key" + ], + "type": "object" + }, + "ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/ParameterAttribute" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/Field" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DataPipeline::Pipeline", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/ParameterObject" + }, + "type": "array", + "uniqueItems": false + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/ParameterValue" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/PipelineObject" + }, + "type": "array", + "uniqueItems": false + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/PipelineTag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ParameterObjects", + "Name" + ], + "typeName": "AWS::DataPipeline::Pipeline" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-directoryservice-microsoftad.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-directoryservice-microsoftad.json new file mode 100644 index 0000000000..2ff7abecf1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-directoryservice-microsoftad.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VpcSettings", + "/properties/Edition", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::MicrosoftAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Edition": { + "enum": [ + "Enterprise", + "Standard" + ], + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::MicrosoftAD" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-directoryservice-simplead.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-directoryservice-simplead.json new file mode 100644 index 0000000000..7646d8ecbe --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-directoryservice-simplead.json @@ -0,0 +1,93 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Size", + "/properties/VpcSettings", + "/properties/Name", + "/properties/Password", + "/properties/ShortName", + "/properties/Description", + "/properties/CreateAlias" + ], + "definitions": { + "VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId", + "SubnetIds" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::DirectoryService::SimpleAD", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Alias": { + "type": "string" + }, + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DnsIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableSso": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "enum": [ + "Small", + "Large" + ], + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/VpcSettings" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Alias", + "/properties/DnsIpAddresses" + ], + "required": [ + "VpcSettings", + "Size", + "Name", + "Password" + ], + "typeName": "AWS::DirectoryService::SimpleAD" +} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-customergateway.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-customergateway.json new file mode 100644 index 0000000000..fb66d92fc4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-customergateway.json @@ -0,0 +1,63 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/IpAddress", + "/properties/BgpAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CustomerGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BgpAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "enum": [ + "ipsec.1" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type", + "IpAddress", + "BgpAsn" + ], + "typeName": "AWS::EC2::CustomerGateway" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-gatewayroutetableassociation.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-gatewayroutetableassociation.json similarity index 100% rename from src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-gatewayroutetableassociation.json rename to src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-gatewayroutetableassociation.json diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json new file mode 100644 index 0000000000..30e7b5c2d0 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-host.json @@ -0,0 +1,41 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceType", + "/properties/AvailabilityZone" + ], + "description": "Resource Type definition for AWS::EC2::Host", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AutoPlacement": { + "enum": [ + "on", + "off" + ], + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "HostRecovery": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AvailabilityZone", + "InstanceType" + ], + "typeName": "AWS::EC2::Host" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-keypair.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-keypair.json new file mode 100644 index 0000000000..375db919f9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-keypair.json @@ -0,0 +1,118 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/KeyPairId" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KeyName", + "/properties/KeyType" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "The AWS::EC2::KeyPair creates an SSH key pair", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateKeyPair", + "ec2:ImportKeyPair", + "ec2:CreateTags", + "ssm:PutParameter" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteKeyPair", + "ssm:DeleteParameter", + "ec2:DescribeKeyPairs" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeKeyPairs" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeKeyPairs" + ] + } + }, + "primaryIdentifier": [ + "/properties/KeyName" + ], + "properties": { + "KeyFingerprint": { + "description": "A short sequence of bytes used for public key verification", + "type": "string" + }, + "KeyName": { + "description": "The name of the SSH key pair", + "type": "string" + }, + "KeyPairId": { + "description": "An AWS generated ID for the key pair", + "type": "string" + }, + "KeyType": { + "default": "rsa", + "description": "The title of the TPS report is a mandatory element.", + "enum": [ + "rsa", + "ed25519" + ], + "type": "string" + }, + "PublicKeyMaterial": { + "description": "Plain text public key to import", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/KeyPairId", + "/properties/KeyFingerprint" + ], + "required": [ + "KeyName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagUpdatable": false, + "taggable": true + }, + "typeName": "AWS::EC2::KeyPair" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkinterface.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkinterface.json new file mode 100644 index 0000000000..d265a3421d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkinterface.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PrivateIpAddress", + "/properties/InterfaceType", + "/properties/SubnetId" + ], + "definitions": { + "InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::NetworkInterface", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "InterfaceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "integer" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/InstanceIpv6Address" + }, + "type": "array", + "uniqueItems": true + }, + "PrimaryPrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/PrivateIpAddressSpecification" + }, + "type": "array", + "uniqueItems": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "SecondaryPrivateIpAddresses": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecondaryPrivateIpAddresses", + "/properties/PrimaryPrivateIpAddress" + ], + "required": [ + "SubnetId" + ], + "typeName": "AWS::EC2::NetworkInterface" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkinterfacepermission.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkinterfacepermission.json new file mode 100644 index 0000000000..f16f086ec1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-networkinterfacepermission.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AwsAccountId", + "/properties/Permission", + "/properties/NetworkInterfaceId" + ], + "description": "Resource Type definition for AWS::EC2::NetworkInterfacePermission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AwsAccountId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "Permission": { + "enum": [ + "INSTANCE-ATTACH", + "EIP-ASSOCIATE" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "AwsAccountId", + "Permission", + "NetworkInterfaceId" + ], + "typeName": "AWS::EC2::NetworkInterfacePermission" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-subnet.json similarity index 100% rename from src/cfnlint/data/schemas/providers/cn_northwest_1/aws-ec2-subnet.json rename to src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-subnet.json diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayattachment.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayattachment.json new file mode 100644 index 0000000000..47b853e538 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayattachment.json @@ -0,0 +1,157 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/VpcId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::TransitGatewayAttachment", + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:DescribeTags", + "ec2:DescribeTransitGatewayAttachments", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTags", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:CreateTags", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteTags", + "ec2:ModifyTransitGatewayVpcAttachment" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "description": "The options for the transit gateway vpc attachment.", + "properties": { + "ApplianceModeSupport": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "DnsSupport": { + "description": "Indicates whether to enable DNS Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + }, + "Ipv6Support": { + "description": "Indicates whether to enable Ipv6 Support for Vpc Attachment. Valid Values: enable | disable", + "type": "string" + } + }, + "type": "object" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "VpcId", + "SubnetIds", + "TransitGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayroute.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayroute.json new file mode 100644 index 0000000000..ba5a41f952 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-transitgatewayroute.json @@ -0,0 +1,37 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Blackhole", + "/properties/TransitGatewayRouteTableId", + "/properties/TransitGatewayAttachmentId", + "/properties/DestinationCidrBlock" + ], + "description": "Resource Type definition for AWS::EC2::TransitGatewayRoute", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Blackhole": { + "type": "boolean" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TransitGatewayRouteTableId" + ], + "typeName": "AWS::EC2::TransitGatewayRoute" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-vpngateway.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-vpngateway.json new file mode 100644 index 0000000000..75dbfb349e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ec2-vpngateway.json @@ -0,0 +1,54 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Type", + "/properties/AmazonSideAsn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::VPNGateway", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonSideAsn": { + "type": "integer" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Type" + ], + "typeName": "AWS::EC2::VPNGateway" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ecr-registrypolicy.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecr-registrypolicy.json new file mode 100644 index 0000000000..5ec89ffc01 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecr-registrypolicy.json @@ -0,0 +1,60 @@ +{ + "additionalProperties": false, + "definitions": { + "RegistryId": { + "description": "The registry id.", + "maxLength": 12, + "minLength": 12, + "pattern": "^[0-9]{12}$", + "type": "string" + } + }, + "description": "The AWS::ECR::RegistryPolicy is used to specify permissions for another AWS account and is used when configuring cross-account replication. For more information, see Registry permissions in the Amazon Elastic Container Registry User Guide: https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html", + "handlers": { + "create": { + "permissions": [ + "ecr:PutRegistryPolicy" + ] + }, + "delete": { + "permissions": [ + "ecr:DeleteRegistryPolicy" + ] + }, + "list": { + "permissions": [ + "ecr:GetRegistryPolicy" + ] + }, + "read": { + "permissions": [ + "ecr:GetRegistryPolicy" + ] + }, + "update": { + "permissions": [ + "ecr:PutRegistryPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/RegistryId" + ], + "properties": { + "PolicyText": { + "description": "The JSON policy text to apply to your registry. The policy text follows the same format as IAM policy text. For more information, see Registry permissions (https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html) in the Amazon Elastic Container Registry User Guide.", + "type": "object" + }, + "RegistryId": { + "$ref": "#/definitions/RegistryId" + } + }, + "readOnlyProperties": [ + "/properties/RegistryId" + ], + "required": [ + "PolicyText" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", + "typeName": "AWS::ECR::RegistryPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-cluster.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-cluster.json new file mode 100644 index 0000000000..eee698bbc5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-ecs-cluster.json @@ -0,0 +1,199 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ClusterName" + ], + "definitions": { + "CapacityProviderStrategyItem": { + "additionalProperties": false, + "description": "A capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used.", + "properties": { + "Base": { + "type": "integer" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "integer" + } + }, + "type": "object" + }, + "ClusterConfiguration": { + "additionalProperties": false, + "description": "The configurations to be set at cluster level.", + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/ExecuteCommandConfiguration" + } + }, + "type": "object" + }, + "ClusterSettings": { + "additionalProperties": false, + "description": "The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandConfiguration": { + "additionalProperties": false, + "description": "The configuration for ExecuteCommand.", + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "description": "The session logging configuration for ExecuteCommand.", + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "ServiceConnectDefaults": { + "additionalProperties": false, + "description": "Service Connect Configuration default for all services or tasks within this cluster", + "properties": { + "Namespace": { + "description": "Service Connect Namespace Name or ARN default for all services or tasks within this cluster", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Create an Elastic Container Service (ECS) cluster.", + "handlers": { + "create": { + "permissions": [ + "ecs:CreateCluster", + "ecs:DescribeClusters", + "iam:CreateServiceLinkedRole" + ] + }, + "delete": { + "permissions": [ + "ecs:DeleteCluster", + "ecs:DescribeClusters" + ] + }, + "list": { + "permissions": [ + "ecs:DescribeClusters", + "ecs:ListClusters" + ] + }, + "read": { + "permissions": [ + "ecs:DescribeClusters" + ] + }, + "update": { + "permissions": [ + "ecs:PutAccountSettingDefault", + "ecs:DescribeClusters", + "ecs:TagResource", + "ecs:UntagResource", + "ecs:PutAccountSetting", + "ecs:ListTagsForResource", + "ecs:UpdateCluster", + "ecs:UpdateClusterSettings", + "ecs:PutClusterCapacityProviders" + ] + } + }, + "primaryIdentifier": [ + "/properties/ClusterName" + ], + "properties": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the Amazon ECS cluster, such as arn:aws:ecs:us-east-2:123456789012:cluster/MyECSCluster.", + "type": "string" + }, + "CapacityProviders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterName": { + "description": "A user-generated string that you use to identify your cluster. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name.", + "type": "string" + }, + "ClusterSettings": { + "items": { + "$ref": "#/definitions/ClusterSettings" + }, + "type": "array" + }, + "Configuration": { + "$ref": "#/definitions/ClusterConfiguration" + }, + "DefaultCapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/CapacityProviderStrategyItem" + }, + "type": "array" + }, + "ServiceConnectDefaults": { + "$ref": "#/definitions/ServiceConnectDefaults" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "typeName": "AWS::ECS::Cluster", + "writeOnlyProperties": [ + "/properties/ServiceConnectDefaults" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-application.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-application.json new file mode 100644 index 0000000000..b613aba6c6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-application.json @@ -0,0 +1,84 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName" + ], + "definitions": { + "ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/MaxCountRule" + } + }, + "type": "object" + }, + "MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "integer" + } + }, + "type": "object" + }, + "MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "integer" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Application", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/ApplicationResourceLifecycleConfig" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::ElasticBeanstalk::Application" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-applicationversion.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-applicationversion.json new file mode 100644 index 0000000000..1b3a2845a4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-applicationversion.json @@ -0,0 +1,51 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ApplicationName", + "/properties/SourceBundle" + ], + "definitions": { + "SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ApplicationVersion", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/SourceBundle" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName", + "SourceBundle" + ], + "typeName": "AWS::ElasticBeanstalk::ApplicationVersion" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-configurationtemplate.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-configurationtemplate.json new file mode 100644 index 0000000000..bd1a025e3f --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-configurationtemplate.json @@ -0,0 +1,91 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PlatformArn", + "/properties/ApplicationName", + "/properties/SolutionStackName", + "/properties/EnvironmentId", + "/properties/SourceConfiguration" + ], + "definitions": { + "ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/ConfigurationOptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/SourceConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::ConfigurationTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-environment.json new file mode 100644 index 0000000000..ad67522d06 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticbeanstalk-environment.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CNAMEPrefix", + "/properties/EnvironmentName", + "/properties/ApplicationName", + "/properties/SolutionStackName" + ], + "definitions": { + "OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticBeanstalk::Environment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EndpointURL": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OperationsRole": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/OptionSetting" + }, + "type": "array", + "uniqueItems": false + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/EndpointURL" + ], + "required": [ + "ApplicationName" + ], + "typeName": "AWS::ElasticBeanstalk::Environment" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-listenerrule.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-listenerrule.json new file mode 100644 index 0000000000..0afd31c630 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-listenerrule.json @@ -0,0 +1,386 @@ +{ + "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": { + "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": { + "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" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "required": [ + "TokenEndpoint", + "Issuer", + "ClientSecret", + "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" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerRule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "type": "array", + "uniqueItems": true + }, + "Conditions": { + "items": { + "$ref": "#/definitions/RuleCondition" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "ListenerArn": { + "type": "string" + }, + "Priority": { + "maximum": 50000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ListenerArn", + "Actions", + "Priority", + "Conditions" + ], + "typeName": "AWS::ElasticLoadBalancingV2::ListenerRule" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-loadbalancer.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-loadbalancer.json new file mode 100644 index 0000000000..48793c4fbd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-elasticloadbalancingv2-loadbalancer.json @@ -0,0 +1,184 @@ +{ + "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": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::LoadBalancer", + "oneOf": [ + { + "properties": { + "Subnets": false + }, + "required": [ + "SubnetMappings" + ], + "type": "object" + }, + { + "properties": { + "SubnetMappings": false + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['SubnetMappings', 'Subnets']", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CanonicalHostedZoneID": { + "type": "string" + }, + "DNSName": { + "type": "string" + }, + "EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/LoadBalancerAttribute" + }, + "type": "array", + "uniqueItems": true + }, + "LoadBalancerFullName": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/SubnetMapping" + }, + "type": "array", + "uniqueItems": true + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/LoadBalancerName", + "/properties/CanonicalHostedZoneID", + "/properties/Id", + "/properties/LoadBalancerFullName", + "/properties/DNSName" + ], + "typeName": "AWS::ElasticLoadBalancingV2::LoadBalancer" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-emr-studio.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-emr-studio.json new file mode 100644 index 0000000000..b6c31749d5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-emr-studio.json @@ -0,0 +1,210 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AuthMode", + "/properties/EngineSecurityGroupId", + "/properties/ServiceRole", + "/properties/UserRole", + "/properties/VpcId", + "/properties/WorkspaceSecurityGroupId" + ], + "definitions": { + "Arn": { + "pattern": "^arn:aws(-(cn|us-gov))?:[a-z-]+:(([a-z]+-)+[0-9])?:([0-9]{12})?:[^.]+$", + "type": "string" + }, + "SubnetId": { + "description": "Identifier of a subnet", + "pattern": "^(subnet-[a-f0-9]{13})|(subnet-[a-f0-9]{8})\\Z", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "An arbitrary set of tags (key-value pairs) for this EMR Studio.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "pattern": "[a-zA-Z+-=._:/]+$", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "description": "Resource schema for AWS::EMR::Studio", + "documentationUrl": "https://docs.aws.amazon.com/emr/latest/APIReference/API_CreateStudio.html", + "handlers": { + "create": { + "permissions": [ + "elasticmapreduce:CreateStudio", + "elasticmapreduce:DescribeStudio", + "elasticmapreduce:AddTags", + "sso:CreateManagedApplicationInstance", + "sso:DeleteManagedApplicationInstance", + "iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "elasticmapreduce:DeleteStudio", + "elasticmapreduce:DescribeStudio", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "elasticmapreduce:ListStudios" + ] + }, + "read": { + "permissions": [ + "elasticmapreduce:DescribeStudio", + "sso:GetManagedApplicationInstance" + ] + }, + "update": { + "permissions": [ + "elasticmapreduce:UpdateStudio", + "elasticmapreduce:DescribeStudio", + "elasticmapreduce:AddTags", + "elasticmapreduce:RemoveTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/StudioId" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/Arn", + "description": "The Amazon Resource Name (ARN) of the EMR Studio." + }, + "AuthMode": { + "description": "Specifies whether the Studio authenticates users using single sign-on (SSO) or IAM. Amazon EMR Studio currently only supports SSO authentication.", + "enum": [ + "SSO", + "IAM" + ], + "type": "string" + }, + "DefaultS3Location": { + "description": "The default Amazon S3 location to back up EMR Studio Workspaces and notebook files. A Studio user can select an alternative Amazon S3 location when creating a Workspace.", + "maxLength": 10280, + "minLength": 6, + "pattern": "^s3://.*", + "type": "string" + }, + "Description": { + "description": "A detailed description of the Studio.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "EngineSecurityGroupId": { + "description": "The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by VpcId.", + "maxLength": 256, + "minLength": 4, + "pattern": "^sg-[a-zA-Z0-9\\-._]+$", + "type": "string" + }, + "IdpAuthUrl": { + "description": "Your identity provider's authentication endpoint. Amazon EMR Studio redirects federated users to this endpoint for authentication when logging in to a Studio with the Studio URL.", + "maxLength": 4096, + "pattern": "^https://[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])(:[0-9]*)*([?/#].*)?$", + "type": "string" + }, + "IdpRelayStateParameterName": { + "description": "The name of relay state parameter for external Identity Provider.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Name": { + "description": "A descriptive name for the Amazon EMR Studio.", + "maxLength": 256, + "minLength": 1, + "pattern": "[a-zA-Z0-9_-]+", + "type": "string" + }, + "ServiceRole": { + "$ref": "#/definitions/Arn", + "description": "The IAM role that will be assumed by the Amazon EMR Studio. The service role provides a way for Amazon EMR Studio to interoperate with other AWS services." + }, + "StudioId": { + "description": "The ID of the EMR Studio.", + "maxLength": 256, + "minLength": 4, + "pattern": "^es-[0-9A-Z]+", + "type": "string" + }, + "SubnetIds": { + "description": "A list of up to 5 subnet IDs to associate with the Studio. The subnets must belong to the VPC specified by VpcId. Studio users can create a Workspace in any of the specified subnets.", + "items": { + "$ref": "#/definitions/SubnetId" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/Tags", + "description": "A list of tags to associate with the Studio. Tags are user-defined key-value pairs that consist of a required key string with a maximum of 128 characters, and an optional value string with a maximum of 256 characters." + }, + "Url": { + "description": "The unique Studio access URL.", + "maxLength": 4096, + "pattern": "^https://[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])(:[0-9]*)*([?/#].*)?$", + "type": "string" + }, + "UserRole": { + "$ref": "#/definitions/Arn", + "description": "The IAM user role that will be assumed by users and groups logged in to a Studio. The permissions attached to this IAM role can be scoped down for each user or group using session policies." + }, + "VpcId": { + "description": "The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.", + "pattern": "^(vpc-[0-9a-f]{8}|vpc-[0-9a-f]{17})$", + "type": "string" + }, + "WorkspaceSecurityGroupId": { + "description": "The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by VpcId.", + "pattern": "^sg-[a-zA-Z0-9\\-._]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/StudioId", + "/properties/Arn", + "/properties/Url" + ], + "required": [ + "AuthMode", + "EngineSecurityGroupId", + "Name", + "ServiceRole", + "SubnetIds", + "VpcId", + "WorkspaceSecurityGroupId", + "DefaultS3Location" + ], + "typeName": "AWS::EMR::Studio" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-alias.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-alias.json new file mode 100644 index 0000000000..a786ab0606 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-alias.json @@ -0,0 +1,49 @@ +{ + "additionalProperties": false, + "definitions": { + "RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Alias", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/RoutingStrategy" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RoutingStrategy", + "Name" + ], + "typeName": "AWS::GameLift::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-build.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-build.json new file mode 100644 index 0000000000..0d69550edf --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-build.json @@ -0,0 +1,57 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StorageLocation", + "/properties/OperatingSystem" + ], + "definitions": { + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Build", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OperatingSystem": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/S3Location" + }, + "Version": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "typeName": "AWS::GameLift::Build" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-fleet.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-fleet.json new file mode 100644 index 0000000000..75d4906f55 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-gamelift-fleet.json @@ -0,0 +1,197 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PeerVpcAwsAccountId", + "/properties/BuildId", + "/properties/EC2InstanceType", + "/properties/ServerLaunchParameters", + "/properties/CertificateConfiguration", + "/properties/LogPaths", + "/properties/ServerLaunchPath", + "/properties/FleetType", + "/properties/ScriptId", + "/properties/PeerVpcId", + "/properties/InstanceRoleARN" + ], + "definitions": { + "CertificateConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateType": { + "type": "string" + } + }, + "required": [ + "CertificateType" + ], + "type": "object" + }, + "IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "IpRange", + "FromPort", + "ToPort", + "Protocol" + ], + "type": "object" + }, + "ResourceCreationLimitPolicy": { + "additionalProperties": false, + "properties": { + "NewGameSessionsPerCreator": { + "type": "integer" + }, + "PolicyPeriodInMinutes": { + "type": "integer" + } + }, + "type": "object" + }, + "RuntimeConfiguration": { + "additionalProperties": false, + "properties": { + "GameSessionActivationTimeoutSeconds": { + "type": "integer" + }, + "MaxConcurrentGameSessionActivations": { + "type": "integer" + }, + "ServerProcesses": { + "items": { + "$ref": "#/definitions/ServerProcess" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ServerProcess": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutions": { + "type": "integer" + }, + "LaunchPath": { + "type": "string" + }, + "Parameters": { + "type": "string" + } + }, + "required": [ + "ConcurrentExecutions", + "LaunchPath" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::GameLift::Fleet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "BuildId": { + "type": "string" + }, + "CertificateConfiguration": { + "$ref": "#/definitions/CertificateConfiguration" + }, + "Description": { + "type": "string" + }, + "DesiredEC2Instances": { + "type": "integer" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/IpPermission" + }, + "type": "array", + "uniqueItems": true + }, + "EC2InstanceType": { + "cfnRegionSchema": "aws_gamelift_fleet/ec2instancetype_enum", + "type": "string" + }, + "FleetType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstanceRoleARN": { + "type": "string" + }, + "LogPaths": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MaxSize": { + "type": "integer" + }, + "MetricGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "MinSize": { + "type": "integer" + }, + "Name": { + "type": "string" + }, + "NewGameSessionProtectionPolicy": { + "type": "string" + }, + "PeerVpcAwsAccountId": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "ResourceCreationLimitPolicy": { + "$ref": "#/definitions/ResourceCreationLimitPolicy" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/RuntimeConfiguration" + }, + "ScriptId": { + "type": "string" + }, + "ServerLaunchParameters": { + "type": "string" + }, + "ServerLaunchPath": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EC2InstanceType", + "Name" + ], + "typeName": "AWS::GameLift::Fleet" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-glue-datacatalogencryptionsettings.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-glue-datacatalogencryptionsettings.json new file mode 100644 index 0000000000..94664d2615 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-glue-datacatalogencryptionsettings.json @@ -0,0 +1,67 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CatalogId" + ], + "definitions": { + "ConnectionPasswordEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "ReturnConnectionPasswordEncrypted": { + "type": "boolean" + } + }, + "type": "object" + }, + "DataCatalogEncryptionSettings": { + "additionalProperties": false, + "properties": { + "ConnectionPasswordEncryption": { + "$ref": "#/definitions/ConnectionPasswordEncryption" + }, + "EncryptionAtRest": { + "$ref": "#/definitions/EncryptionAtRest" + } + }, + "type": "object" + }, + "EncryptionAtRest": { + "additionalProperties": false, + "properties": { + "CatalogEncryptionMode": { + "type": "string" + }, + "SseAwsKmsKeyId": { + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Glue::DataCatalogEncryptionSettings", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "CatalogId": { + "type": "string" + }, + "DataCatalogEncryptionSettings": { + "$ref": "#/definitions/DataCatalogEncryptionSettings" + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DataCatalogEncryptionSettings", + "CatalogId" + ], + "typeName": "AWS::Glue::DataCatalogEncryptionSettings" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-guardduty-master.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-guardduty-master.json new file mode 100644 index 0000000000..6a841839da --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-guardduty-master.json @@ -0,0 +1,31 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InvitationId", + "/properties/DetectorId", + "/properties/MasterId" + ], + "description": "Resource Type definition for AWS::GuardDuty::Master", + "primaryIdentifier": [ + "/properties/MasterId" + ], + "properties": { + "DetectorId": { + "type": "string" + }, + "InvitationId": { + "type": "string" + }, + "MasterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/MasterId" + ], + "required": [ + "DetectorId", + "MasterId" + ], + "typeName": "AWS::GuardDuty::Master" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-iam-accesskey.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-iam-accesskey.json new file mode 100644 index 0000000000..eaf023abb9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-iam-accesskey.json @@ -0,0 +1,40 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Serial", + "/properties/UserName" + ], + "description": "Resource Type definition for AWS::IAM::AccessKey", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretAccessKey": { + "type": "string" + }, + "Serial": { + "type": "integer" + }, + "Status": { + "enum": [ + "Active", + "Inactive" + ], + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecretAccessKey" + ], + "required": [ + "UserName" + ], + "typeName": "AWS::IAM::AccessKey" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-iot-policyprincipalattachment.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-iot-policyprincipalattachment.json new file mode 100644 index 0000000000..1e5d6a7348 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-iot-policyprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/PolicyName" + ], + "description": "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PolicyName", + "Principal" + ], + "typeName": "AWS::IoT::PolicyPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-iot-thingprincipalattachment.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-iot-thingprincipalattachment.json new file mode 100644 index 0000000000..e527a23e87 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-iot-thingprincipalattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Principal", + "/properties/ThingName" + ], + "description": "Resource Type definition for AWS::IoT::ThingPrincipalAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "ThingName", + "Principal" + ], + "typeName": "AWS::IoT::ThingPrincipalAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-kinesis-streamconsumer.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-kinesis-streamconsumer.json new file mode 100644 index 0000000000..3507f8a448 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-kinesis-streamconsumer.json @@ -0,0 +1,42 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StreamARN", + "/properties/ConsumerName" + ], + "description": "Resource Type definition for AWS::Kinesis::StreamConsumer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "ConsumerARN": { + "type": "string" + }, + "ConsumerCreationTimestamp": { + "type": "string" + }, + "ConsumerName": { + "type": "string" + }, + "ConsumerStatus": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "StreamARN": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ConsumerStatus", + "/properties/Id", + "/properties/ConsumerARN", + "/properties/ConsumerCreationTimestamp" + ], + "required": [ + "ConsumerName", + "StreamARN" + ], + "typeName": "AWS::Kinesis::StreamConsumer" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-kms-alias.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-kms-alias.json new file mode 100644 index 0000000000..6a73e643b9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-kms-alias.json @@ -0,0 +1,59 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AliasName" + ], + "description": "The AWS::KMS::Alias resource specifies a display name for an AWS KMS key in AWS Key Management Service (AWS KMS). You can use an alias to identify an AWS KMS key in cryptographic operations.", + "handlers": { + "create": { + "permissions": [ + "kms:CreateAlias" + ] + }, + "delete": { + "permissions": [ + "kms:DeleteAlias" + ] + }, + "list": { + "permissions": [ + "kms:ListAliases" + ] + }, + "read": { + "permissions": [ + "kms:ListAliases" + ] + }, + "update": { + "permissions": [ + "kms:UpdateAlias" + ] + } + }, + "primaryIdentifier": [ + "/properties/AliasName" + ], + "properties": { + "AliasName": { + "description": "Specifies the alias name. This value must begin with alias/ followed by a name, such as alias/ExampleAlias. The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved for AWS managed keys.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(alias/)[a-zA-Z0-9:/_-]+$", + "type": "string" + }, + "TargetKeyId": { + "description": "Identifies the AWS KMS key to which the alias refers. Specify the key ID or the Amazon Resource Name (ARN) of the AWS KMS key. You cannot specify another alias. For help finding the key ID and ARN, see Finding the Key ID and ARN in the AWS Key Management Service Developer Guide.", + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "AliasName", + "TargetKeyId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "taggable": false, + "typeName": "AWS::KMS::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-lambda-permission.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-lambda-permission.json new file mode 100644 index 0000000000..f3d98e2735 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-lambda-permission.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SourceAccount", + "/properties/FunctionUrlAuthType", + "/properties/SourceArn", + "/properties/Principal", + "/properties/Action", + "/properties/FunctionName", + "/properties/EventSourceToken", + "/properties/PrincipalOrgID" + ], + "description": "Resource Type definition for AWS::Lambda::Permission", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Action": { + "type": "string" + }, + "EventSourceToken": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionUrlAuthType": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "PrincipalOrgID": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "Action", + "Principal" + ], + "typeName": "AWS::Lambda::Permission" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-networkfirewall-rulegroup.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-networkfirewall-rulegroup.json new file mode 100644 index 0000000000..74ef44b6eb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-networkfirewall-rulegroup.json @@ -0,0 +1,709 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RuleGroupName", + "/properties/Capacity", + "/properties/Type" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "Address": { + "additionalProperties": false, + "properties": { + "AddressDefinition": { + "maxLength": 255, + "minLength": 1, + "pattern": "^([a-fA-F\\d:\\.]+/\\d{1,3})$", + "type": "string" + } + }, + "required": [ + "AddressDefinition" + ], + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "GeneratedRulesType": { + "enum": [ + "ALLOWLIST", + "DENYLIST" + ], + "type": "string" + }, + "Header": { + "additionalProperties": false, + "properties": { + "Destination": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "DestinationPort": { + "$ref": "#/definitions/Port" + }, + "Direction": { + "enum": [ + "FORWARD", + "ANY" + ], + "type": "string" + }, + "Protocol": { + "enum": [ + "IP", + "TCP", + "UDP", + "ICMP", + "HTTP", + "FTP", + "TLS", + "SMB", + "DNS", + "DCERPC", + "SSH", + "SMTP", + "IMAP", + "MSN", + "KRB5", + "IKEV2", + "TFTP", + "NTP", + "DHCP" + ], + "type": "string" + }, + "Source": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "SourcePort": { + "$ref": "#/definitions/Port" + } + }, + "required": [ + "Protocol", + "Source", + "SourcePort", + "Direction", + "Destination", + "DestinationPort" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "IPSetReference": { + "additionalProperties": false, + "properties": { + "ReferenceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "type": "object" + }, + "MatchAttributes": { + "additionalProperties": false, + "properties": { + "DestinationPorts": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PortRange" + }, + "type": "array", + "uniqueItems": false + }, + "Destinations": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Address" + }, + "type": "array", + "uniqueItems": false + }, + "Protocols": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ProtocolNumber" + }, + "type": "array", + "uniqueItems": false + }, + "SourcePorts": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PortRange" + }, + "type": "array", + "uniqueItems": false + }, + "Sources": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Address" + }, + "type": "array", + "uniqueItems": false + }, + "TCPFlags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TCPFlagField" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "Port": { + "maxLength": 1024, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "$ref": "#/definitions/PortRangeBound" + }, + "ToPort": { + "$ref": "#/definitions/PortRangeBound" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "PortRangeBound": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "PortSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "ProtocolNumber": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ReferenceSets": { + "additionalProperties": false, + "properties": { + "IPSetReferences": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSetReference" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleDefinition": { + "additionalProperties": false, + "properties": { + "Actions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "MatchAttributes": { + "$ref": "#/definitions/MatchAttributes" + } + }, + "required": [ + "MatchAttributes", + "Actions" + ], + "type": "object" + }, + "RuleGroup": { + "additionalProperties": false, + "properties": { + "ReferenceSets": { + "$ref": "#/definitions/ReferenceSets" + }, + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + }, + "RulesSource": { + "$ref": "#/definitions/RulesSource" + }, + "StatefulRuleOptions": { + "$ref": "#/definitions/StatefulRuleOptions" + } + }, + "required": [ + "RulesSource" + ], + "type": "object" + }, + "RuleOption": { + "additionalProperties": false, + "properties": { + "Keyword": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Settings": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Setting" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Keyword" + ], + "type": "object" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "properties": { + "IPSets": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "PortSets": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/PortSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "RulesSource": { + "additionalProperties": false, + "properties": { + "RulesSourceList": { + "$ref": "#/definitions/RulesSourceList" + }, + "RulesString": { + "$ref": "#/definitions/RulesString" + }, + "StatefulRules": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRule" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRulesAndCustomActions": { + "$ref": "#/definitions/StatelessRulesAndCustomActions" + } + }, + "type": "object" + }, + "RulesSourceList": { + "additionalProperties": false, + "properties": { + "GeneratedRulesType": { + "$ref": "#/definitions/GeneratedRulesType" + }, + "TargetTypes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TargetType" + }, + "type": "array", + "uniqueItems": false + }, + "Targets": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Targets", + "TargetTypes", + "GeneratedRulesType" + ], + "type": "object" + }, + "RulesString": { + "maxLength": 1000000, + "minLength": 0, + "type": "string" + }, + "Setting": { + "maxLength": 8192, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "StatefulRule": { + "additionalProperties": false, + "properties": { + "Action": { + "enum": [ + "PASS", + "DROP", + "ALERT", + "REJECT" + ], + "type": "string" + }, + "Header": { + "$ref": "#/definitions/Header" + }, + "RuleOptions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/RuleOption" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Action", + "Header", + "RuleOptions" + ], + "type": "object" + }, + "StatefulRuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + } + }, + "type": "object" + }, + "StatelessRule": { + "additionalProperties": false, + "properties": { + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "RuleDefinition": { + "$ref": "#/definitions/RuleDefinition" + } + }, + "required": [ + "RuleDefinition", + "Priority" + ], + "type": "object" + }, + "StatelessRulesAndCustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRules": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRule" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessRules" + ], + "type": "object" + }, + "TCPFlag": { + "enum": [ + "FIN", + "SYN", + "RST", + "PSH", + "ACK", + "URG", + "ECE", + "CWR" + ], + "type": "string" + }, + "TCPFlagField": { + "additionalProperties": false, + "properties": { + "Flags": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TCPFlag" + }, + "type": "array", + "uniqueItems": false + }, + "Masks": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/TCPFlag" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Flags" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TargetType": { + "enum": [ + "TLS_SNI", + "HTTP_HOST" + ], + "type": "string" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::RuleGroup", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateRuleGroup", + "network-firewall:DescribeRuleGroup", + "network-firewall:TagResource" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteRuleGroup", + "network-firewall:DescribeRuleGroup", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListRuleGroups" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeRuleGroup", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateRuleGroup", + "network-firewall:DescribeRuleGroup", + "network-firewall:TagResource", + "network-firewall:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RuleGroupArn" + ], + "properties": { + "Capacity": { + "type": "integer" + }, + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "RuleGroup": { + "$ref": "#/definitions/RuleGroup" + }, + "RuleGroupArn": { + "$ref": "#/definitions/ResourceArn" + }, + "RuleGroupId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "RuleGroupName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "enum": [ + "STATELESS", + "STATEFUL" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/RuleGroupArn", + "/properties/RuleGroupId" + ], + "required": [ + "Type", + "Capacity", + "RuleGroupName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "typeName": "AWS::NetworkFirewall::RuleGroup" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-opsworks-instance.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-opsworks-instance.json new file mode 100644 index 0000000000..bb049a1011 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-opsworks-instance.json @@ -0,0 +1,299 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Tenancy", + "/properties/VirtualizationType", + "/properties/TimeBasedAutoScaling", + "/properties/RootDeviceType", + "/properties/AutoScalingType", + "/properties/StackId", + "/properties/AvailabilityZone", + "/properties/SubnetId", + "/properties/BlockDeviceMappings", + "/properties/EbsOptimized" + ], + "definitions": { + "BlockDeviceMapping": { + "additionalProperties": false, + "oneOf": [ + { + "properties": { + "Ebs": false, + "NoDevice": false + }, + "required": [ + "VirtualName" + ], + "type": "object" + }, + { + "properties": { + "NoDevice": false, + "VirtualName": false + }, + "required": [ + "Ebs" + ], + "type": "object" + }, + { + "properties": { + "Ebs": false, + "VirtualName": false + }, + "required": [ + "NoDevice" + ], + "type": "object" + }, + { + "maxProperties": 1, + "minProperties": 1, + "propertyNames": { + "enum": [ + "Fn::Base64", + "Fn::GetAtt", + "Fn::GetAZs", + "Fn::ImportValue", + "Fn::Join", + "Fn::Split", + "Fn::FindInMap", + "Fn::Select", + "Ref", + "Fn::If", + "Fn::Contains", + "Fn::Sub", + "Fn::Cidr", + "Fn::Length", + "Fn::ToJsonString", + "Fn::ForEach::[a-zA-Z0-9]+" + ] + }, + "type": "object" + } + ], + "oneOfDescription": "Specify only one ['VirtualName', 'Ebs', 'NoDevice']", + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + }, + "TimeBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "Friday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Monday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Saturday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Sunday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Thursday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Tuesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "Wednesday": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Instance", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "AmiId": { + "type": "string" + }, + "Architecture": { + "type": "string" + }, + "AutoScalingType": { + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/BlockDeviceMapping" + }, + "type": "array", + "uniqueItems": true + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticIps": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Hostname": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "LayerIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Os": { + "type": "string" + }, + "PrivateDnsName": { + "type": "string" + }, + "PrivateIp": { + "type": "string" + }, + "PublicDnsName": { + "type": "string" + }, + "PublicIp": { + "type": "string" + }, + "RootDeviceType": { + "type": "string" + }, + "SshKeyName": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tenancy": { + "type": "string" + }, + "TimeBasedAutoScaling": { + "$ref": "#/definitions/TimeBasedAutoScaling" + }, + "VirtualizationType": { + "type": "string" + }, + "Volumes": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/PublicIp", + "/properties/Id", + "/properties/PublicDnsName", + "/properties/PrivateDnsName", + "/properties/PrivateIp" + ], + "required": [ + "LayerIds", + "InstanceType", + "StackId" + ], + "typeName": "AWS::OpsWorks::Instance" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-opsworks-layer.json new file mode 100644 index 0000000000..0c7549d975 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-opsworks-layer.json @@ -0,0 +1,262 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/StackId", + "/properties/Type" + ], + "definitions": { + "AutoScalingThresholds": { + "additionalProperties": false, + "properties": { + "CpuThreshold": { + "type": "number" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "InstanceCount": { + "type": "integer" + }, + "LoadThreshold": { + "type": "number" + }, + "MemoryThreshold": { + "type": "number" + }, + "ThresholdsWaitTime": { + "type": "integer" + } + }, + "type": "object" + }, + "LifecycleEventConfiguration": { + "additionalProperties": false, + "properties": { + "ShutdownEventConfiguration": { + "$ref": "#/definitions/ShutdownEventConfiguration" + } + }, + "type": "object" + }, + "LoadBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "DownScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + }, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "$ref": "#/definitions/AutoScalingThresholds" + } + }, + "type": "object" + }, + "Recipes": { + "additionalProperties": false, + "properties": { + "Configure": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Deploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Setup": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Shutdown": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Undeploy": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ShutdownEventConfiguration": { + "additionalProperties": false, + "properties": { + "DelayUntilElbConnectionsDrained": { + "type": "boolean" + }, + "ExecutionTimeout": { + "type": "integer" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "MountPoint": { + "type": "string" + }, + "NumberOfDisks": { + "type": "integer" + }, + "RaidLevel": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "VolumeType": { + "enum": [ + "standard", + "io1", + "io2", + "gp2", + "sc1", + "st1", + "gp3" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::OpsWorks::Layer", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomInstanceProfileArn": { + "type": "string" + }, + "CustomJson": { + "type": "object" + }, + "CustomRecipes": { + "$ref": "#/definitions/Recipes" + }, + "CustomSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "$ref": "#/definitions/LifecycleEventConfiguration" + }, + "LoadBasedAutoScaling": { + "$ref": "#/definitions/LoadBasedAutoScaling" + }, + "Name": { + "type": "string" + }, + "Packages": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Shortname": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "Type": { + "type": "string" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/VolumeConfiguration" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "EnableAutoHealing", + "Type", + "AutoAssignElasticIps", + "Shortname", + "AutoAssignPublicIps", + "Name", + "StackId" + ], + "typeName": "AWS::OpsWorks::Layer" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-opsworks-stack.json new file mode 100644 index 0000000000..f3862f3e29 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-opsworks-stack.json @@ -0,0 +1,230 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CloneAppIds", + "/properties/ClonePermissions", + "/properties/ServiceRoleArn", + "/properties/VpcId", + "/properties/SourceStackId" + ], + "definitions": { + "ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "RdsDbInstanceArn", + "DbUser" + ], + "type": "object" + }, + "Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "VpcId": [ + "DefaultSubnetId" + ] + }, + "description": "Resource Type definition for AWS::OpsWorks::Stack", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "patternProperties": { + "[a-zA-Z0-9]+": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/ElasticIp" + }, + "type": "array", + "uniqueItems": true + }, + "HostnameTheme": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/RdsDbInstance" + }, + "type": "array", + "uniqueItems": true + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "DefaultInstanceProfileArn", + "ServiceRoleArn", + "Name" + ], + "typeName": "AWS::OpsWorks::Stack" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..9a18b7d8e4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbcluster.json @@ -0,0 +1,545 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbcluster/serverless_exclusive" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. For the list of supported feature names, see DBEngineVersion in the Amazon RDS API Reference.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The connection endpoint for the DB cluster.", + "type": "string" + }, + "Port": { + "description": "The port number that will accept connections on this DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "The reader endpoint for the DB cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster.", + "properties": { + "AutoPause": { + "description": "A value that indicates whether to allow or disallow automatic pause for an Aurora DB cluster in serverless DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in serverless DB engine mode.\nFor Aurora MySQL, valid capacity values are 1, 2, 4, 8, 16, 32, 64, 128, and 256.\nFor Aurora PostgreSQL, valid capacity values are 2, 4, 8, 16, 32, 64, 192, and 384.\nThe minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action.\nThe default is 300.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in serverless mode is paused.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ForceApplyCapacityChange or RollbackCapacityChange.\nForceApplyCapacityChange sets the capacity to the specified value as soon as possible.\nRollbackCapacityChange, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n\nFor more information, see Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.", + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster.", + "properties": { + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + }, + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "maximum": 128, + "minimum": 0.5, + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SnapshotIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false + } + }, + "SourceDBClusterIdentifier": { + "properties": { + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "description": "The AWS::RDS::DBCluster resource creates an Amazon Aurora DB cluster.", + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeEvents", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other AWS services on your behalf.", + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AvailabilityZones": { + "awsType": "AvailabilityZones", + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see Choosing the Regions and Availability Zones in the Amazon Aurora User Guide.", + "items": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "default": 0, + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to 0.", + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.", + "type": "boolean" + }, + "DBClusterArn": { + "description": "The Amazon Resource Name (ARN) for the DB cluster.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The DB cluster identifier. This parameter is stored as a lowercase string.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge.", + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "description": "The name of the DB cluster parameter group to associate with this DB cluster.", + "type": "string" + }, + "DBClusterResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB cluster.", + "type": "string" + }, + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see Naming Constraints in the Amazon RDS User Guide.", + "type": "string" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB cluster in.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.", + "type": "boolean" + }, + "EnableHttpEndpoint": { + "description": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster. By default, the HTTP endpoint is disabled.", + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "description": "The name of the database engine to be used for this DB cluster. Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible Aurora), and aurora-postgresql", + "type": "string" + }, + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the AWS::RDS::GlobalCluster resource.\n\nIf you aren't configuring a global database cluster, don't specify this property.", + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS Key Management Service master key that is used to encrypt the database instances in the DB cluster, such as arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. If you enable the StorageEncrypted property but don't specify this property, the default master key is used. If you specify this property, you must set the StorageEncrypted property to true.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The master password for the DB instance.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster. You must specify MasterUsername, unless you specify SnapshotIdentifier. In that case, don't specify MasterUsername.", + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "PerformanceInsightsEnabled": { + "description": "A value that indicates whether to turn on Performance Insights for the DB cluster.", + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "description": "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data.", + "type": "integer" + }, + "Port": { + "description": "The port number on which the instances in the DB cluster accept connections. Default: 3306 if engine is set as aurora or 5432 if set to aurora-postgresql.", + "type": "integer" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter. The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora User Guide.", + "type": "string" + }, + "PubliclyAccessible": { + "description": "A value that indicates whether the DB cluster is publicly accessible.", + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.", + "type": "string" + }, + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to. Value must be a time in Universal Coordinated Time (UTC) format. An example: 2015-03-07T23:45:00Z", + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "description": "The type of restore to be performed. You can specify one of the following values:\nfull-copy - The new DB cluster is restored as a full copy of the source DB cluster.\ncopy-on-write - The new DB cluster is restored as a clone of the source DB cluster.", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration", + "description": "The ScalingConfiguration property type specifies the scaling configuration of an Aurora Serverless DB cluster." + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration", + "description": "Contains the scaling configuration of an Aurora Serverless v2 DB cluster." + }, + "SnapshotIdentifier": { + "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\nYou can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\nAfter you restore a DB cluster with a SnapshotIdentifier property, you must specify the same SnapshotIdentifier property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the SnapshotIdentifier property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the specified SnapshotIdentifier property, and the original DB cluster is deleted.", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the source DB cluster from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, us-east-1.", + "type": "string" + }, + "StorageEncrypted": { + "description": "Indicates whether the DB instance is encrypted.\nIf you specify the DBClusterIdentifier, SnapshotIdentifier, or SourceDBInstanceIdentifier property, don't specify this property. The value is inherited from the cluster, snapshot, or source DB instance.", + "type": "boolean" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB cluster.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time.", + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : false", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbinstance.json new file mode 100644 index 0000000000..4c2f423ae2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbinstance.json @@ -0,0 +1,697 @@ +{ + "additionalProperties": false, + "cfnSchema": [ + "aws_rds_dbinstance/aurora_exclusive" + ], + "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": { + "description": "The CA identifier of the CA certificate used for the DB instance's server certificate.", + "type": "string" + }, + "ValidTill": { + "description": "The expiration date of the DB instance\u2019s server certificate.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance.", + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the DNS address of the DB instance.", + "type": "string" + }, + "HostedZoneId": { + "description": "Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "description": "The AWS KMS key identifier that is used to encrypt the secret.", + "type": "string" + }, + "SecretArn": { + "description": "The Amazon Resource Name (ARN) of the secret.", + "type": "string" + } + }, + "type": "object" + }, + "ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "description": "The name of the processor feature. Valid names are coreCount and threadsPerCore.", + "enum": [ + "coreCount", + "threadsPerCore" + ], + "type": "string" + }, + "Value": { + "description": "The value of a processor feature name.", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "dependencies": { + "SourceDBInstanceIdentifier": { + "properties": { + "CharacterSetName": false, + "MasterUserPassword": false, + "MasterUsername": false, + "StorageEncrypted": false + } + } + }, + "deprecatedProperties": [ + "/properties/TdeCredentialArn", + "/properties/TdeCredentialPassword" + ], + "description": "The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance.", + "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: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": { + "description": "The amount of storage (in gigabytes) to be initially allocated for the database instance.", + "pattern": "^[0-9]*$", + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "description": "A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.", + "type": "boolean" + }, + "AssociatedRoles": { + "description": "The AWS Identity and Access Management (IAM) roles associated with the DB instance.", + "items": { + "$ref": "#/definitions/DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "description": "A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically.", + "type": "boolean" + }, + "AutomaticBackupReplicationRegion": { + "description": "Enables replication of automated backups to a different Amazon Web Services Region.", + "type": "string" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "description": "The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones.", + "type": "string" + }, + "BackupRetentionPeriod": { + "default": 1, + "description": "The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.", + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CACertificateIdentifier": { + "description": "The identifier of the CA certificate for this DB instance.", + "type": "string" + }, + "CertificateDetails": { + "$ref": "#/definitions/CertificateDetails", + "description": "Returns the details of the DB instance's server certificate." + }, + "CertificateRotationRestart": { + "description": "A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate.\nBy default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted.\nIf you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate\nThis setting doesn't apply to RDS Custom.", + "type": "boolean" + }, + "CharacterSetName": { + "description": "For supported engines, indicates that the DB instance should be associated with the specified character set.", + "type": "string" + }, + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.", + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "description": "The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements:\n * The profile must exist in your account.\n * The profile must have an IAM role that Amazon EC2 has permissions to assume.\n * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom .\nFor the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide .\n\nThis setting is required for RDS Custom.", + "type": "string" + }, + "DBClusterIdentifier": { + "description": "The identifier of the DB cluster that the instance will belong to.", + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "description": "The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide .\n\nConstraints:\n * Must match the identifier of an existing Multi-AZ DB cluster snapshot.\n * Can't be specified when DBSnapshotIdentifier is specified.\n * Must be specified when DBSnapshotIdentifier isn't specified.\n * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.\n * Can't be the identifier of an Aurora DB cluster snapshot.\n * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.", + "type": "string" + }, + "DBInstanceArn": { + "description": "The Amazon Resource Name (ARN) for the DB instance.", + "type": "string" + }, + "DBInstanceClass": { + "cfnRegionSchema": "aws_rds_dbinstance/dbinstanceclass_enum", + "description": "The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines.", + "type": "string" + }, + "DBInstanceIdentifier": { + "description": "A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance.", + "maxLength": 63, + "minLength": 1, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBName": { + "description": "The meaning of this parameter differs according to the database engine you use.", + "type": "string" + }, + "DBParameterGroupName": { + "description": "The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template.", + "type": "string" + }, + "DBSecurityGroups": { + "description": "A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "DBSnapshotIdentifier": { + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.", + "type": "string" + }, + "DBSubnetGroupName": { + "description": "A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC.", + "type": "string" + }, + "DBSystemId": { + "description": "The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.", + "type": "string" + }, + "DbiResourceId": { + "description": "The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed.", + "type": "string" + }, + "DedicatedLogVolume": { + "description": "Indicates whether the DB instance has a dedicated log volume (DLV) enabled.", + "type": "boolean" + }, + "DeleteAutomatedBackups": { + "description": "A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted.", + "type": "boolean" + }, + "DeletionProtection": { + "description": "A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.", + "type": "boolean" + }, + "Domain": { + "description": "The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.", + "type": "string" + }, + "DomainAuthSecretArn": { + "description": "The ARN for the Secrets Manager secret with the credentials for the user joining the domain.", + "type": "string" + }, + "DomainDnsIps": { + "description": "The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers.", + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainFqdn": { + "description": "The fully qualified domain name (FQDN) of an Active Directory domain.", + "type": "string" + }, + "DomainIAMRoleName": { + "description": "Specify the name of the IAM role to be used when making API calls to the Directory Service.", + "type": "string" + }, + "DomainOu": { + "description": "The Active Directory organizational unit for your DB instance to join.", + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "description": "The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used.", + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.", + "type": "boolean" + }, + "EnablePerformanceInsights": { + "description": "A value that indicates whether to enable Performance Insights for the DB instance.", + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "Specifies the connection endpoint." + }, + "Engine": { + "description": "The name of the database engine that you want to use for this DB instance.", + "type": "string" + }, + "EngineVersion": { + "description": "The version number of the database engine to use.", + "type": "string" + }, + "Iops": { + "description": "The number of I/O operations per second (IOPS) that the database provisions.", + "type": "integer" + }, + "KmsKeyId": { + "description": "The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance.", + "type": "string" + }, + "LicenseModel": { + "description": "License model information for this DB instance.", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "A value that indicates whether to manage the master user password with AWS Secrets Manager.", + "type": "boolean" + }, + "MasterUserPassword": { + "description": "The password for the master user.", + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret", + "description": "Contains the secret managed by RDS in AWS Secrets Manager for the master user password." + }, + "MasterUsername": { + "description": "The master user name for the DB instance.", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", + "type": "string" + }, + "MaxAllocatedStorage": { + "description": "The upper limit to which Amazon RDS can automatically scale the storage of the DB instance.", + "type": "integer" + }, + "MonitoringInterval": { + "default": 0, + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.", + "type": "integer" + }, + "MonitoringRoleArn": { + "description": "The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs.", + "type": "string" + }, + "MultiAZ": { + "description": "Specifies whether the database instance is a multiple Availability Zone deployment.", + "type": "boolean" + }, + "NcharCharacterSetName": { + "description": "The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom.", + "type": "string" + }, + "NetworkType": { + "description": "The network type of the DB cluster.", + "type": "string" + }, + "OptionGroupName": { + "description": "Indicates that the DB instance should be associated with the specified option group.", + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "description": "The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.", + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "description": "The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).", + "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": { + "description": "The port number on which the database accepts connections.", + "pattern": "^\\d*$", + "type": "string" + }, + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter.", + "type": "string" + }, + "PreferredMaintenanceWindow": { + "description": "he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).", + "type": "string" + }, + "ProcessorFeatures": { + "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.", + "items": { + "$ref": "#/definitions/ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "default": 1, + "description": "A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance.", + "maximum": 15, + "minimum": 0, + "type": "integer" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address.", + "type": "boolean" + }, + "ReplicaMode": { + "description": "The open mode of an Oracle read replica. The default is open-read-only.", + "type": "string" + }, + "RestoreTime": { + "description": "The date and time to restore from.", + "format": "date-time", + "type": "string" + }, + "SourceDBClusterIdentifier": { + "description": "The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas.", + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "description": "The Amazon Resource Name (ARN) of the replicated automated backups from which to restore.", + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "description": "If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas.", + "type": "string" + }, + "SourceDbiResourceId": { + "description": "The resource ID of the source DB instance from which to restore.", + "type": "string" + }, + "SourceRegion": { + "description": "The ID of the region that contains the source DB instance for the Read Replica.", + "type": "string" + }, + "StorageEncrypted": { + "description": "A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted.", + "type": "boolean" + }, + "StorageThroughput": { + "description": "Specifies the storage throughput for the DB instance.", + "type": "integer" + }, + "StorageType": { + "description": "Specifies the storage type to be associated with the DB instance.", + "type": "string" + }, + "Tags": { + "description": "Tags to assign to the DB instance.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "TdeCredentialArn": { + "description": "The ARN from the key store with which to associate the instance for TDE encryption.", + "type": "string" + }, + "TdeCredentialPassword": { + "description": "The password for the given ARN from the key store in order to access the device.", + "type": "string" + }, + "Timezone": { + "description": "The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server.", + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "description": "A value that indicates whether the DB instance class of the DB instance uses its default processor features.", + "type": "boolean" + }, + "UseLatestRestorableTime": { + "description": "A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time.", + "type": "boolean" + }, + "VPCSecurityGroups": { + "description": "A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template.", + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", + "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", + "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", + "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", + "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/OptionGroupName": "$lowercase(OptionGroupName)", + "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", + "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/Endpoint/HostedZoneId", + "/properties/DbiResourceId", + "/properties/DBInstanceArn", + "/properties/DBSystemId", + "/properties/MasterUserSecret/SecretArn", + "/properties/CertificateDetails/CAIdentifier", + "/properties/CertificateDetails/ValidTill" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "typeName": "AWS::RDS::DBInstance", + "writeOnlyProperties": [ + "/properties/AllowMajorVersionUpgrade", + "/properties/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-redshift-cluster.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-redshift-cluster.json new file mode 100644 index 0000000000..370f799510 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-redshift-cluster.json @@ -0,0 +1,195 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/MasterUsername", + "/properties/OwnerAccount", + "/properties/SnapshotIdentifier", + "/properties/Encrypted", + "/properties/Port", + "/properties/DBName", + "/properties/SnapshotClusterIdentifier", + "/properties/AvailabilityZone", + "/properties/ClusterSubnetGroupName", + "/properties/ClusterIdentifier", + "/properties/ElasticIp" + ], + "definitions": { + "LoggingProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::Cluster", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AllowVersionUpgrade": { + "type": "boolean" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "AvailabilityZone": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterParameterGroupName": { + "type": "string" + }, + "ClusterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "ClusterSubnetGroupName": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "ClusterVersion": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "ElasticIp": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Endpoint": { + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "EndpointAddress": { + "type": "string" + }, + "EndpointPort": { + "type": "string" + }, + "HsmClientCertificateIdentifier": { + "type": "string" + }, + "HsmConfigurationIdentifier": { + "type": "string" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/LoggingProperties" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "NodeType": { + "cfnRegionSchema": "aws_redshift_cluster/nodetype_enum", + "type": "string" + }, + "NumberOfNodes": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "OwnerAccount": { + "type": "string" + }, + "Port": { + "type": "integer" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Endpoint/Port", + "/properties/Endpoint/Address" + ], + "required": [ + "MasterUserPassword", + "NodeType", + "MasterUsername", + "DBName", + "ClusterType" + ], + "typeName": "AWS::Redshift::Cluster" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-redshift-clusterparametergroup.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-redshift-clusterparametergroup.json new file mode 100644 index 0000000000..d05a398a2c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-redshift-clusterparametergroup.json @@ -0,0 +1,78 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ParameterGroupFamily", + "/properties/Description" + ], + "definitions": { + "Parameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterValue", + "ParameterName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterParameterGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "ParameterGroupFamily": { + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/Parameter" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "ParameterGroupFamily" + ], + "typeName": "AWS::Redshift::ClusterParameterGroup" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-redshift-clustersubnetgroup.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-redshift-clustersubnetgroup.json new file mode 100644 index 0000000000..855e1344e6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-redshift-clustersubnetgroup.json @@ -0,0 +1,55 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Redshift::ClusterSubnetGroup", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Description", + "SubnetIds" + ], + "typeName": "AWS::Redshift::ClusterSubnetGroup" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-route53-healthcheck.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-route53-healthcheck.json new file mode 100644 index 0000000000..aae9580ade --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-route53-healthcheck.json @@ -0,0 +1,131 @@ +{ + "additionalProperties": false, + "definitions": { + "AlarmIdentifier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region", + "Name" + ], + "type": "object" + }, + "HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "$ref": "#/definitions/AlarmIdentifier" + }, + "ChildHealthChecks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableSNI": { + "type": "boolean" + }, + "FailureThreshold": { + "type": "integer" + }, + "FullyQualifiedDomainName": { + "type": "string" + }, + "HealthThreshold": { + "type": "integer" + }, + "IPAddress": { + "type": "string" + }, + "InsufficientDataHealthStatus": { + "type": "string" + }, + "Inverted": { + "type": "boolean" + }, + "MeasureLatency": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "RequestInterval": { + "type": "integer" + }, + "ResourcePath": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "HealthCheckTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HealthCheck", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HealthCheckConfig": { + "$ref": "#/definitions/HealthCheckConfig", + "cfnSchema": [ + "aws_route53_healthcheck/healthcheckconfig_type_inclusive" + ] + }, + "HealthCheckTags": { + "items": { + "$ref": "#/definitions/HealthCheckTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "HealthCheckConfig" + ], + "typeName": "AWS::Route53::HealthCheck" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-route53-hostedzone.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-route53-hostedzone.json new file mode 100644 index 0000000000..4f589ca0c9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-route53-hostedzone.json @@ -0,0 +1,108 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "type": "object" + }, + "HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "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": [ + "VPCRegion", + "VPCId" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::Route53::HostedZone", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "HostedZoneConfig": { + "$ref": "#/definitions/HostedZoneConfig" + }, + "HostedZoneTags": { + "items": { + "$ref": "#/definitions/HostedZoneTag" + }, + "type": "array", + "uniqueItems": false + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NameServers": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/QueryLoggingConfig" + }, + "VPCs": { + "items": { + "$ref": "#/definitions/VPC" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/NameServers" + ], + "required": [ + "Name" + ], + "typeName": "AWS::Route53::HostedZone" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-secretsmanager-secrettargetattachment.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-secretsmanager-secrettargetattachment.json new file mode 100644 index 0000000000..ace966c437 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-secretsmanager-secrettargetattachment.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "description": "Resource Type definition for AWS::SecretsManager::SecretTargetAttachment", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "SecretId": { + "type": "string" + }, + "TargetId": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SecretId", + "TargetType", + "TargetId" + ], + "typeName": "AWS::SecretsManager::SecretTargetAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-acceptedportfolioshare.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-acceptedportfolioshare.json new file mode 100644 index 0000000000..767e95ecfd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-acceptedportfolioshare.json @@ -0,0 +1,29 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId" + ], + "typeName": "AWS::ServiceCatalog::AcceptedPortfolioShare" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-cloudformationprovisionedproduct.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-cloudformationprovisionedproduct.json new file mode 100644 index 0000000000..5c4e58b5bd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-cloudformationprovisionedproduct.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/NotificationArns", + "/properties/ProvisionedProductName" + ], + "definitions": { + "ProvisioningParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "ProvisioningPreferences": { + "additionalProperties": false, + "properties": { + "StackSetAccounts": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StackSetFailureToleranceCount": { + "type": "integer" + }, + "StackSetFailureTolerancePercentage": { + "type": "integer" + }, + "StackSetMaxConcurrencyCount": { + "type": "integer" + }, + "StackSetMaxConcurrencyPercentage": { + "type": "integer" + }, + "StackSetOperationType": { + "type": "string" + }, + "StackSetRegions": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ServiceCatalog::CloudFormationProvisionedProduct", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "CloudformationStackArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "NotificationArns": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "PathId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "ProductName": { + "type": "string" + }, + "ProvisionedProductName": { + "type": "string" + }, + "ProvisioningArtifactId": { + "type": "string" + }, + "ProvisioningArtifactName": { + "type": "string" + }, + "ProvisioningParameters": { + "items": { + "$ref": "#/definitions/ProvisioningParameter" + }, + "type": "array", + "uniqueItems": false + }, + "ProvisioningPreferences": { + "$ref": "#/definitions/ProvisioningPreferences" + }, + "RecordId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/RecordId", + "/properties/CloudformationStackArn" + ], + "typeName": "AWS::ServiceCatalog::CloudFormationProvisionedProduct" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-portfolio.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-portfolio.json new file mode 100644 index 0000000000..79797255b4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-portfolio.json @@ -0,0 +1,61 @@ +{ + "additionalProperties": false, + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::ServiceCatalog::Portfolio", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioName": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/PortfolioName" + ], + "required": [ + "ProviderName", + "DisplayName" + ], + "typeName": "AWS::ServiceCatalog::Portfolio" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-portfolioprincipalassociation.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-portfolioprincipalassociation.json new file mode 100644 index 0000000000..2ae9e8819b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-portfolioprincipalassociation.json @@ -0,0 +1,39 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/PortfolioId", + "/properties/PrincipalARN", + "/properties/PrincipalType" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "PrincipalARN": { + "type": "string" + }, + "PrincipalType": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PrincipalARN", + "PortfolioId", + "PrincipalType" + ], + "typeName": "AWS::ServiceCatalog::PortfolioPrincipalAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-portfolioproductassociation.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-portfolioproductassociation.json new file mode 100644 index 0000000000..ba9090e0f3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-portfolioproductassociation.json @@ -0,0 +1,38 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AcceptLanguage", + "/properties/SourcePortfolioId", + "/properties/PortfolioId", + "/properties/ProductId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AcceptLanguage": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "SourcePortfolioId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "PortfolioId", + "ProductId" + ], + "typeName": "AWS::ServiceCatalog::PortfolioProductAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-tagoptionassociation.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-tagoptionassociation.json new file mode 100644 index 0000000000..6ab91b4165 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-servicecatalog-tagoptionassociation.json @@ -0,0 +1,30 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceId", + "/properties/TagOptionId" + ], + "description": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "TagOptionId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "TagOptionId", + "ResourceId" + ], + "typeName": "AWS::ServiceCatalog::TagOptionAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-stepfunctions-activity.json new file mode 100644 index 0000000000..15981c2a5c --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-stepfunctions-activity.json @@ -0,0 +1,99 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for Activity", + "handlers": { + "create": { + "permissions": [ + "states:CreateActivity", + "states:TagResource" + ] + }, + "delete": { + "permissions": [ + "states:DescribeActivity", + "states:DeleteActivity" + ] + }, + "list": { + "permissions": [ + "states:ListActivities" + ] + }, + "read": { + "permissions": [ + "states:DescribeActivity", + "states:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "states:ListTagsForResource", + "states:TagResource", + "states:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "Name": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagsEntry" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-stepfunctions.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::StepFunctions::Activity" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-ipset.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-ipset.json new file mode 100644 index 0000000000..198879fe09 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-ipset.json @@ -0,0 +1,50 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "IPSetDescriptor": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::IPSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "IPSetDescriptors": { + "items": { + "$ref": "#/definitions/IPSetDescriptor" + }, + "type": "array", + "uniqueItems": true + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "Name" + ], + "typeName": "AWS::WAF::IPSet" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-rule.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-rule.json new file mode 100644 index 0000000000..5ae8e6b6b7 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-rule.json @@ -0,0 +1,68 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "enum": [ + "IPMatch", + "ByteMatch", + "SqlInjectionMatch", + "GeoMatch", + "SizeConstraint", + "XssMatch", + "RegexMatch" + ], + "type": "string" + } + }, + "required": [ + "Type", + "DataId", + "Negated" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::Rule", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/Predicate" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "Name" + ], + "typeName": "AWS::WAF::Rule" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-sizeconstraintset.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-sizeconstraintset.json new file mode 100644 index 0000000000..cc2fdb3cd9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-sizeconstraintset.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "type": "integer" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "Size", + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::SizeConstraintSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/SizeConstraint" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "SizeConstraints", + "Name" + ], + "typeName": "AWS::WAF::SizeConstraintSet" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-webacl.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-webacl.json new file mode 100644 index 0000000000..d95f27d59b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-webacl.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/MetricName" + ], + "definitions": { + "ActivatedRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/WafAction" + }, + "Priority": { + "type": "integer" + }, + "RuleId": { + "type": "string" + } + }, + "required": [ + "Priority", + "RuleId" + ], + "type": "object" + }, + "WafAction": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::WebACL", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "DefaultAction": { + "$ref": "#/definitions/WafAction" + }, + "Id": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/ActivatedRule" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "MetricName", + "DefaultAction", + "Name" + ], + "typeName": "AWS::WAF::WebACL" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-xssmatchset.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-xssmatchset.json new file mode 100644 index 0000000000..a7cd951419 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-waf-xssmatchset.json @@ -0,0 +1,66 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "TextTransformation", + "FieldToMatch" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::WAF::XssMatchSet", + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/XssMatchTuple" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "XssMatchTuples", + "Name" + ], + "typeName": "AWS::WAF::XssMatchSet" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-wafv2-rulegroup.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-wafv2-rulegroup.json new file mode 100644 index 0000000000..bb49988200 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-wafv2-rulegroup.json @@ -0,0 +1,1426 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Count traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the RuleGroup", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the RuleGroup.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelSummary": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP", + "CUSTOM_KEYS" + ], + "type": "string" + }, + "CustomKeys": { + "description": "Specifies the aggregate keys to use in a rate-base rule.", + "items": { + "$ref": "#/definitions/RateBasedStatementCustomKey" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateBasedStatementCustomKey": { + "additionalProperties": false, + "description": "Specifies a single custom aggregate key for a rate-base rule.", + "properties": { + "Cookie": { + "$ref": "#/definitions/RateLimitCookie" + }, + "ForwardedIP": { + "$ref": "#/definitions/RateLimitForwardedIP" + }, + "HTTPMethod": { + "$ref": "#/definitions/RateLimitHTTPMethod" + }, + "Header": { + "$ref": "#/definitions/RateLimitHeader" + }, + "IP": { + "$ref": "#/definitions/RateLimitIP" + }, + "LabelNamespace": { + "$ref": "#/definitions/RateLimitLabelNamespace" + }, + "QueryArgument": { + "$ref": "#/definitions/RateLimitQueryArgument" + }, + "QueryString": { + "$ref": "#/definitions/RateLimitQueryString" + }, + "UriPath": { + "$ref": "#/definitions/RateLimitUriPath" + } + }, + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RateLimitCookie": { + "additionalProperties": false, + "description": "Specifies a cookie as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the cookie to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitForwardedIP": { + "description": "Specifies the first IP address in an HTTP header as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitHTTPMethod": { + "description": "Specifies the request's HTTP method as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitHeader": { + "additionalProperties": false, + "description": "Specifies a header as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the header to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitIP": { + "description": "Specifies the IP address in the web request as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitLabelNamespace": { + "additionalProperties": false, + "description": "Specifies a label namespace to use as an aggregate key for a rate-based rule.", + "properties": { + "Namespace": { + "description": "The namespace to use for aggregation.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + } + }, + "required": [ + "Namespace" + ], + "type": "object" + }, + "RateLimitQueryArgument": { + "additionalProperties": false, + "description": "Specifies a query argument in the request as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the query argument to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitQueryString": { + "additionalProperties": false, + "description": "Specifies the request's query string as an aggregate key for a rate-based rule.", + "properties": { + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "TextTransformations" + ], + "type": "object" + }, + "RateLimitUriPath": { + "additionalProperties": false, + "description": "Specifies the request's URI Path as an aggregate key for a rate-based rule.", + "properties": { + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "TextTransformations" + ], + "type": "object" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of RuleGroup that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront RuleGroup, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the RuleGroup.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a RuleGroup, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a RuleGroup, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the RuleGroup with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a RuleGroup, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteRuleGroup", + "wafv2:GetRuleGroup" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Scope": { + "$ref": "resource-schema.json#/properties/Scope" + } + }, + "required": [ + "Scope" + ] + }, + "permissions": [ + "wafv2:listRuleGroups" + ] + }, + "read": { + "permissions": [ + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateRuleGroup", + "wafv2:GetRuleGroup", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AvailableLabels": { + "description": "Collection of Available Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "ConsumedLabels": { + "description": "Collection of Consumed Labels.", + "items": { + "$ref": "#/definitions/LabelSummary" + }, + "type": "array" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id", + "/properties/LabelNamespace", + "/properties/AvailableLabels/*/Name", + "/properties/ConsumedLabels/*/Name" + ], + "required": [ + "Capacity", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::RuleGroup" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-wafv2-webacl.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-wafv2-webacl.json new file mode 100644 index 0000000000..89bdbeebbd --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-wafv2-webacl.json @@ -0,0 +1,1961 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/Scope" + ], + "definitions": { + "AWSManagedRulesACFPRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Account creation fraud prevention managed rule group in the web ACL", + "properties": { + "CreationPath": { + "type": "string" + }, + "EnableRegexInPath": { + "type": "boolean" + }, + "RegistrationPagePath": { + "type": "string" + }, + "RequestInspection": { + "$ref": "#/definitions/RequestInspectionACFP" + }, + "ResponseInspection": { + "$ref": "#/definitions/ResponseInspection" + } + }, + "required": [ + "CreationPath", + "RegistrationPagePath", + "RequestInspection" + ], + "type": "object" + }, + "AWSManagedRulesATPRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Account Takeover Prevention managed rule group in the web ACL", + "properties": { + "EnableRegexInPath": { + "type": "boolean" + }, + "LoginPath": { + "type": "string" + }, + "RequestInspection": { + "$ref": "#/definitions/RequestInspection" + }, + "ResponseInspection": { + "$ref": "#/definitions/ResponseInspection" + } + }, + "required": [ + "LoginPath" + ], + "type": "object" + }, + "AWSManagedRulesBotControlRuleSet": { + "additionalProperties": false, + "description": "Configures how to use the Bot Control managed rule group in the web ACL", + "properties": { + "InspectionLevel": { + "enum": [ + "COMMON", + "TARGETED" + ], + "type": "string" + } + }, + "required": [ + "InspectionLevel" + ], + "type": "object" + }, + "AddressField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "AllowAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AssociationConfig": { + "additionalProperties": false, + "description": "AssociationConfig for body inspection", + "properties": { + "RequestBody": { + "$ref": "#/definitions/RequestBody" + } + }, + "type": "object" + }, + "BlockAction": { + "additionalProperties": false, + "description": "Block traffic towards application.", + "properties": { + "CustomResponse": { + "$ref": "#/definitions/CustomResponse" + } + }, + "type": "object" + }, + "Body": { + "additionalProperties": false, + "description": "The body of a web request. This immediately follows the request headers.", + "properties": { + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "type": "object" + }, + "BodyParsingFallbackBehavior": { + "description": "The inspection behavior to fall back to if the JSON in the request body is invalid.", + "enum": [ + "MATCH", + "NO_MATCH", + "EVALUATE_AS_STRING" + ], + "type": "string" + }, + "ByteMatchStatement": { + "additionalProperties": false, + "description": "Byte Match statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "PositionalConstraint": { + "$ref": "#/definitions/PositionalConstraint" + }, + "SearchString": { + "$ref": "#/definitions/SearchString" + }, + "SearchStringBase64": { + "$ref": "#/definitions/SearchStringBase64" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "CaptchaAction": { + "additionalProperties": false, + "description": "Checks valid token exists with request.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "ChallengeAction": { + "additionalProperties": false, + "description": "Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/ImmunityTimeProperty" + } + }, + "type": "object" + }, + "CookieMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request cookies.", + "properties": { + "All": { + "description": "Inspect all parts of the web request cookies.", + "type": "object" + }, + "ExcludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedCookies": { + "items": { + "maxLength": 60, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Cookies": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/CookieMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "CountAction": { + "additionalProperties": false, + "description": "Allow traffic towards application.", + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/CustomRequestHandling" + } + }, + "type": "object" + }, + "CustomHTTPHeader": { + "additionalProperties": false, + "description": "HTTP header.", + "properties": { + "Name": { + "$ref": "#/definitions/CustomHTTPHeaderName" + }, + "Value": { + "$ref": "#/definitions/CustomHTTPHeaderValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "CustomHTTPHeaderName": { + "description": "HTTP header name.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "CustomHTTPHeaderValue": { + "description": "HTTP header value.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "CustomRequestHandling": { + "additionalProperties": false, + "description": "Custom request handling.", + "properties": { + "InsertHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "CustomResponse": { + "additionalProperties": false, + "description": "Custom response.", + "properties": { + "CustomResponseBodyKey": { + "description": "Custom response body key.", + "pattern": "^[\\w\\-]+$", + "type": "string" + }, + "ResponseCode": { + "$ref": "#/definitions/ResponseStatusCode" + }, + "ResponseHeaders": { + "description": "Collection of HTTP headers.", + "items": { + "$ref": "#/definitions/CustomHTTPHeader" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "description": "Custom response key and body map.", + "minProperties": 1, + "patternProperties": { + "^[\\w\\-]+$": { + "$ref": "#/definitions/CustomResponseBody" + } + }, + "type": "object" + }, + "CustomResponseBody": { + "additionalProperties": false, + "description": "Custom response body.", + "properties": { + "Content": { + "$ref": "#/definitions/ResponseContent" + }, + "ContentType": { + "$ref": "#/definitions/ResponseContentType" + } + }, + "required": [ + "ContentType", + "Content" + ], + "type": "object" + }, + "DefaultAction": { + "additionalProperties": false, + "description": "Default Action WebACL will take against ingress traffic when there is no matching Rule.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + } + }, + "type": "object" + }, + "EntityDescription": { + "description": "Description of the entity.", + "pattern": "^[a-zA-Z0-9=:#@/\\-,.][a-zA-Z0-9+=:#@/\\-,.\\s]+[a-zA-Z0-9+=:#@/\\-,.]{1,256}$", + "type": "string" + }, + "EntityId": { + "description": "Id of the WebACL", + "pattern": "^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$", + "type": "string" + }, + "EntityName": { + "description": "Name of the WebACL.", + "pattern": "^[0-9A-Za-z_-]{1,128}$", + "type": "string" + }, + "ExcludedRule": { + "additionalProperties": false, + "description": "Excluded Rule in the RuleGroup or ManagedRuleGroup will not be evaluated.", + "properties": { + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "FieldIdentifier": { + "additionalProperties": false, + "properties": { + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + } + }, + "required": [ + "Identifier" + ], + "type": "object" + }, + "FieldToMatch": { + "additionalProperties": false, + "description": "Field of the request to match.", + "properties": { + "AllQueryArguments": { + "description": "All query arguments of a web request.", + "type": "object" + }, + "Body": { + "$ref": "#/definitions/Body" + }, + "Cookies": { + "$ref": "#/definitions/Cookies" + }, + "Headers": { + "$ref": "#/definitions/Headers" + }, + "JsonBody": { + "$ref": "#/definitions/JsonBody" + }, + "Method": { + "description": "The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.", + "type": "object" + }, + "QueryString": { + "description": "The query string of a web request. This is the part of a URL that appears after a ? character, if any.", + "type": "object" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "description": "One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.", + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "UriPath": { + "description": "The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.", + "type": "object" + } + }, + "type": "object" + }, + "ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior" + ], + "type": "object" + }, + "GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "maxLength": 2, + "minLength": 1, + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "HeaderMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the request headers.", + "properties": { + "All": { + "description": "Inspect all parts of the web request headers.", + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 199, + "minItems": 1, + "type": "array" + } + }, + "type": "object" + }, + "Headers": { + "additionalProperties": false, + "description": "Includes headers of a web request.", + "properties": { + "MatchPattern": { + "$ref": "#/definitions/HeaderMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/MapMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "enum": [ + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "HeaderName": { + "pattern": "^[a-zA-Z0-9-]{1,255}$", + "type": "string" + }, + "Position": { + "enum": [ + "FIRST", + "LAST", + "ANY" + ], + "type": "string" + } + }, + "required": [ + "HeaderName", + "FallbackBehavior", + "Position" + ], + "type": "object" + }, + "IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "maximum": 259200, + "minimum": 60, + "type": "integer" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "JsonBody": { + "additionalProperties": false, + "description": "Inspect the request body as JSON. The request body immediately follows the request headers.", + "properties": { + "InvalidFallbackBehavior": { + "$ref": "#/definitions/BodyParsingFallbackBehavior" + }, + "MatchPattern": { + "$ref": "#/definitions/JsonMatchPattern" + }, + "MatchScope": { + "$ref": "#/definitions/JsonMatchScope" + }, + "OversizeHandling": { + "$ref": "#/definitions/OversizeHandling" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "JsonMatchPattern": { + "additionalProperties": false, + "description": "The pattern to look for in the JSON body.", + "properties": { + "All": { + "description": "Inspect all parts of the web request's JSON body.", + "type": "object" + }, + "IncludedPaths": { + "items": { + "$ref": "#/definitions/JsonPointerPath" + }, + "type": "array" + } + }, + "type": "object" + }, + "JsonMatchScope": { + "description": "The parts of the JSON to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "JsonPointerPath": { + "description": "JSON pointer path in the web request's JSON body", + "pattern": "^[\\/]+([^~]*(~[01])*){1,512}$", + "type": "string" + }, + "Label": { + "additionalProperties": false, + "properties": { + "Name": { + "$ref": "#/definitions/LabelName" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "LabelMatchKey": { + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "LabelMatchScope": { + "enum": [ + "LABEL", + "NAMESPACE" + ], + "type": "string" + }, + "LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/LabelMatchKey" + }, + "Scope": { + "$ref": "#/definitions/LabelMatchScope" + } + }, + "required": [ + "Scope", + "Key" + ], + "type": "object" + }, + "LabelName": { + "description": "Name of the Label.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + }, + "ManagedRuleGroupConfig": { + "additionalProperties": false, + "description": "ManagedRuleGroupConfig.", + "properties": { + "AWSManagedRulesACFPRuleSet": { + "$ref": "#/definitions/AWSManagedRulesACFPRuleSet" + }, + "AWSManagedRulesATPRuleSet": { + "$ref": "#/definitions/AWSManagedRulesATPRuleSet" + }, + "AWSManagedRulesBotControlRuleSet": { + "$ref": "#/definitions/AWSManagedRulesBotControlRuleSet" + }, + "LoginPath": { + "maxLength": 256, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "type": "object" + }, + "ManagedRuleGroupStatement": { + "additionalProperties": false, + "properties": { + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "ManagedRuleGroupConfigs": { + "description": "Collection of ManagedRuleGroupConfig.", + "items": { + "$ref": "#/definitions/ManagedRuleGroupConfig" + }, + "type": "array" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + }, + "VendorName": { + "type": "string" + }, + "Version": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[\\w#:\\.\\-/]+$", + "type": "string" + } + }, + "required": [ + "VendorName", + "Name" + ], + "type": "object" + }, + "MapMatchScope": { + "description": "The parts of the request to match against using the MatchPattern.", + "enum": [ + "ALL", + "KEY", + "VALUE" + ], + "type": "string" + }, + "NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "OverrideAction": { + "additionalProperties": false, + "description": "Override a RuleGroup or ManagedRuleGroup behavior. This can only be applied to Rule that has RuleGroupReferenceStatement or ManagedRuleGroupReferenceStatement.", + "properties": { + "Count": { + "description": "Count traffic towards application.", + "type": "object" + }, + "None": { + "description": "Keep the RuleGroup or ManagedRuleGroup behavior as is.", + "type": "object" + } + }, + "type": "object" + }, + "OversizeHandling": { + "description": "Handling of requests containing oversize fields", + "enum": [ + "CONTINUE", + "MATCH", + "NO_MATCH" + ], + "type": "string" + }, + "PhoneNumberField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PositionalConstraint": { + "description": "Position of the evaluation in the FieldToMatch of request.", + "enum": [ + "EXACTLY", + "STARTS_WITH", + "ENDS_WITH", + "CONTAINS", + "CONTAINS_WORD" + ], + "type": "string" + }, + "QueryString": { + "type": "object" + }, + "RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "enum": [ + "IP", + "FORWARDED_IP", + "CUSTOM_KEYS" + ], + "type": "string" + }, + "CustomKeys": { + "description": "Specifies the aggregate keys to use in a rate-base rule.", + "items": { + "$ref": "#/definitions/RateBasedStatementCustomKey" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/ForwardedIPConfiguration" + }, + "Limit": { + "$ref": "#/definitions/RateLimit" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/Statement" + } + }, + "required": [ + "Limit", + "AggregateKeyType" + ], + "type": "object" + }, + "RateBasedStatementCustomKey": { + "additionalProperties": false, + "description": "Specifies a single custom aggregate key for a rate-base rule.", + "properties": { + "Cookie": { + "$ref": "#/definitions/RateLimitCookie" + }, + "ForwardedIP": { + "$ref": "#/definitions/RateLimitForwardedIP" + }, + "HTTPMethod": { + "$ref": "#/definitions/RateLimitHTTPMethod" + }, + "Header": { + "$ref": "#/definitions/RateLimitHeader" + }, + "IP": { + "$ref": "#/definitions/RateLimitIP" + }, + "LabelNamespace": { + "$ref": "#/definitions/RateLimitLabelNamespace" + }, + "QueryArgument": { + "$ref": "#/definitions/RateLimitQueryArgument" + }, + "QueryString": { + "$ref": "#/definitions/RateLimitQueryString" + }, + "UriPath": { + "$ref": "#/definitions/RateLimitUriPath" + } + }, + "type": "object" + }, + "RateLimit": { + "maximum": 2000000000, + "minimum": 100, + "type": "integer" + }, + "RateLimitCookie": { + "additionalProperties": false, + "description": "Specifies a cookie as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the cookie to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitForwardedIP": { + "description": "Specifies the first IP address in an HTTP header as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitHTTPMethod": { + "description": "Specifies the request's HTTP method as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitHeader": { + "additionalProperties": false, + "description": "Specifies a header as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the header to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitIP": { + "description": "Specifies the IP address in the web request as an aggregate key for a rate-based rule.", + "type": "object" + }, + "RateLimitLabelNamespace": { + "additionalProperties": false, + "description": "Specifies a label namespace to use as an aggregate key for a rate-based rule.", + "properties": { + "Namespace": { + "description": "The namespace to use for aggregation.", + "pattern": "^[0-9A-Za-z_:-]{1,1024}$", + "type": "string" + } + }, + "required": [ + "Namespace" + ], + "type": "object" + }, + "RateLimitQueryArgument": { + "additionalProperties": false, + "description": "Specifies a query argument in the request as an aggregate key for a rate-based rule.", + "properties": { + "Name": { + "description": "The name of the query argument to use.", + "maxLength": 64, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TextTransformations" + ], + "type": "object" + }, + "RateLimitQueryString": { + "additionalProperties": false, + "description": "Specifies the request's query string as an aggregate key for a rate-based rule.", + "properties": { + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "TextTransformations" + ], + "type": "object" + }, + "RateLimitUriPath": { + "additionalProperties": false, + "description": "Specifies the request's URI Path as an aggregate key for a rate-based rule.", + "properties": { + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "TextTransformations" + ], + "type": "object" + }, + "RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "RegexString": { + "maxLength": 512, + "minLength": 1, + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "RegexString", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "RequestBody": { + "additionalProperties": false, + "description": "Map of AssociatedResourceType and RequestBodyAssociatedResourceTypeConfig", + "patternProperties": { + "^(CLOUDFRONT)$": { + "$ref": "#/definitions/RequestBodyAssociatedResourceTypeConfig" + } + }, + "type": "object" + }, + "RequestBodyAssociatedResourceTypeConfig": { + "additionalProperties": false, + "description": "Configures the inspection size in the request body.", + "properties": { + "DefaultSizeInspectionLimit": { + "$ref": "#/definitions/SizeInspectionLimit" + } + }, + "required": [ + "DefaultSizeInspectionLimit" + ], + "type": "object" + }, + "RequestInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login requests", + "properties": { + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "PayloadType", + "UsernameField", + "PasswordField" + ], + "type": "object" + }, + "RequestInspectionACFP": { + "additionalProperties": false, + "description": "Configures the inspection of sign-up requests", + "properties": { + "AddressFields": { + "items": { + "$ref": "#/definitions/AddressField" + }, + "type": "array" + }, + "EmailField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PasswordField": { + "$ref": "#/definitions/FieldIdentifier" + }, + "PayloadType": { + "enum": [ + "JSON", + "FORM_ENCODED" + ], + "type": "string" + }, + "PhoneNumberFields": { + "items": { + "$ref": "#/definitions/PhoneNumberField" + }, + "type": "array" + }, + "UsernameField": { + "$ref": "#/definitions/FieldIdentifier" + } + }, + "required": [ + "PayloadType" + ], + "type": "object" + }, + "ResourceArn": { + "description": "ARN of the WAF entity.", + "maxLength": 2048, + "minLength": 20, + "type": "string" + }, + "ResponseContent": { + "description": "Response content.", + "maxLength": 10240, + "minLength": 1, + "type": "string" + }, + "ResponseContentType": { + "description": "Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.", + "enum": [ + "TEXT_PLAIN", + "TEXT_HTML", + "APPLICATION_JSON" + ], + "type": "string" + }, + "ResponseInspection": { + "additionalProperties": false, + "description": "Configures the inspection of login responses", + "properties": { + "BodyContains": { + "$ref": "#/definitions/ResponseInspectionBodyContains" + }, + "Header": { + "$ref": "#/definitions/ResponseInspectionHeader" + }, + "Json": { + "$ref": "#/definitions/ResponseInspectionJson" + }, + "StatusCode": { + "$ref": "#/definitions/ResponseInspectionStatusCode" + } + }, + "type": "object" + }, + "ResponseInspectionBodyContains": { + "additionalProperties": false, + "description": "Response body contents that indicate success or failure of a login request", + "properties": { + "FailureStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "SuccessStrings": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessStrings", + "FailureStrings" + ], + "type": "object" + }, + "ResponseInspectionHeader": { + "additionalProperties": false, + "description": "Response headers that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Name": { + "maxLength": 200, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Name", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionJson": { + "additionalProperties": false, + "description": "Response JSON that indicate success or failure of a login request", + "properties": { + "FailureValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Identifier": { + "maxLength": 512, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SuccessValues": { + "items": { + "maxLength": 100, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Identifier", + "SuccessValues", + "FailureValues" + ], + "type": "object" + }, + "ResponseInspectionStatusCode": { + "additionalProperties": false, + "description": "Response status codes that indicate success or failure of a login request", + "properties": { + "FailureCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + }, + "SuccessCodes": { + "items": { + "maxLength": 999, + "minLength": 0, + "type": "integer" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "SuccessCodes", + "FailureCodes" + ], + "type": "object" + }, + "ResponseStatusCode": { + "description": "Custom response code.", + "maximum": 599, + "minimum": 200, + "type": "integer" + }, + "Rule": { + "additionalProperties": false, + "description": "Rule of WebACL that contains condition and action.", + "properties": { + "Action": { + "$ref": "#/definitions/RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "OverrideAction": { + "$ref": "#/definitions/OverrideAction" + }, + "Priority": { + "$ref": "#/definitions/RulePriority" + }, + "RuleLabels": { + "description": "Collection of Rule Labels.", + "items": { + "$ref": "#/definitions/Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "RuleAction": { + "additionalProperties": false, + "description": "Action taken when Rule matches its condition.", + "properties": { + "Allow": { + "$ref": "#/definitions/AllowAction" + }, + "Block": { + "$ref": "#/definitions/BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/CountAction" + } + }, + "type": "object" + }, + "RuleActionOverride": { + "additionalProperties": false, + "description": "Action override for rules in the rule group.", + "properties": { + "ActionToUse": { + "$ref": "#/definitions/RuleAction" + }, + "Name": { + "$ref": "#/definitions/EntityName" + } + }, + "required": [ + "Name", + "ActionToUse" + ], + "type": "object" + }, + "RuleGroupReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/ExcludedRule" + }, + "type": "array" + }, + "RuleActionOverrides": { + "description": "Action overrides for rules in the rule group.", + "items": { + "$ref": "#/definitions/RuleActionOverride" + }, + "maxItems": 100, + "type": "array" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "RulePriority": { + "description": "Priority of the Rule, Rules get evaluated from lower to higher priority.", + "minimum": 0, + "type": "integer" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "description": "Use CLOUDFRONT for CloudFront WebACL, use REGIONAL for Application Load Balancer and API Gateway.", + "enum": [ + "CLOUDFRONT", + "REGIONAL" + ], + "type": "string" + }, + "SearchString": { + "description": "String that is searched to find a match.", + "type": "string" + }, + "SearchStringBase64": { + "description": "Base64 encoded string that is searched to find a match.", + "type": "string" + }, + "SensitivityLevel": { + "description": "Sensitivity Level current only used for sqli match statements.", + "enum": [ + "LOW", + "HIGH" + ], + "type": "string" + }, + "SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SingleQueryArgument": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "SizeConstraintStatement": { + "additionalProperties": false, + "description": "Size Constraint statement.", + "properties": { + "ComparisonOperator": { + "enum": [ + "EQ", + "NE", + "LE", + "LT", + "GE", + "GT" + ], + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "Size": { + "maximum": 21474836480, + "minimum": 0, + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "ComparisonOperator", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "SizeInspectionLimit": { + "enum": [ + "KB_16", + "KB_32", + "KB_48", + "KB_64" + ], + "type": "string" + }, + "SqliMatchStatement": { + "additionalProperties": false, + "description": "Sqli Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "SensitivityLevel": { + "$ref": "#/definitions/SensitivityLevel" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "Statement": { + "additionalProperties": false, + "description": "First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc", + "properties": { + "AndStatement": { + "$ref": "#/definitions/AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/LabelMatchStatement" + }, + "ManagedRuleGroupStatement": { + "$ref": "#/definitions/ManagedRuleGroupStatement" + }, + "NotStatement": { + "$ref": "#/definitions/NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/RegexPatternSetReferenceStatement" + }, + "RuleGroupReferenceStatement": { + "$ref": "#/definitions/RuleGroupReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/XssMatchStatement" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "type": "object" + }, + "TextTransformation": { + "additionalProperties": false, + "description": "Text Transformation on the Search String before match.", + "properties": { + "Priority": { + "$ref": "#/definitions/TextTransformationPriority" + }, + "Type": { + "$ref": "#/definitions/TextTransformationType" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "TextTransformationPriority": { + "description": "Priority of Rule being evaluated.", + "minimum": 0, + "type": "integer" + }, + "TextTransformationType": { + "description": "Type of text transformation.", + "enum": [ + "NONE", + "COMPRESS_WHITE_SPACE", + "HTML_ENTITY_DECODE", + "LOWERCASE", + "CMD_LINE", + "URL_DECODE", + "BASE64_DECODE", + "HEX_DECODE", + "MD5", + "REPLACE_COMMENTS", + "ESCAPE_SEQ_DECODE", + "SQL_HEX_DECODE", + "CSS_DECODE", + "JS_DECODE", + "NORMALIZE_PATH", + "NORMALIZE_PATH_WIN", + "REMOVE_NULLS", + "REPLACE_NULLS", + "BASE64_DECODE_EXT", + "URL_DECODE_UNI", + "UTF8_TO_UNICODE" + ], + "type": "string" + }, + "TokenDomains": { + "description": "List of domains to accept in web request tokens, in addition to the domain of the protected resource.", + "items": { + "maxLength": 253, + "minLength": 1, + "pattern": "^[\\w\\.\\-/]+$", + "type": "string" + }, + "type": "array" + }, + "UriPath": { + "type": "object" + }, + "VisibilityConfig": { + "additionalProperties": false, + "description": "Visibility Metric of the WebACL.", + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SampledRequestsEnabled", + "CloudWatchMetricsEnabled", + "MetricName" + ], + "type": "object" + }, + "XssMatchStatement": { + "additionalProperties": false, + "description": "Xss Match Statement.", + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + } + }, + "description": "Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted.", + "handlers": { + "create": { + "permissions": [ + "wafv2:CreateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "wafv2:DeleteWebACL", + "wafv2:GetWebACL" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Scope": { + "$ref": "resource-schema.json#/properties/Scope" + } + }, + "required": [ + "Scope" + ] + }, + "permissions": [ + "wafv2:listWebACLs" + ] + }, + "read": { + "permissions": [ + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "wafv2:UpdateWebACL", + "wafv2:GetWebACL", + "wafv2:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name", + "/properties/Id", + "/properties/Scope" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/ResourceArn" + }, + "AssociationConfig": { + "$ref": "#/definitions/AssociationConfig" + }, + "Capacity": { + "minimum": 0, + "type": "integer" + }, + "CaptchaConfig": { + "$ref": "#/definitions/CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/ChallengeConfig" + }, + "CustomResponseBodies": { + "$ref": "#/definitions/CustomResponseBodies" + }, + "DefaultAction": { + "$ref": "#/definitions/DefaultAction" + }, + "Description": { + "$ref": "#/definitions/EntityDescription" + }, + "Id": { + "$ref": "#/definitions/EntityId" + }, + "LabelNamespace": { + "$ref": "#/definitions/LabelName" + }, + "Name": { + "$ref": "#/definitions/EntityName" + }, + "Rules": { + "description": "Collection of Rules.", + "items": { + "$ref": "#/definitions/Rule" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/Scope" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "minItems": 1, + "type": "array" + }, + "TokenDomains": { + "$ref": "#/definitions/TokenDomains" + }, + "VisibilityConfig": { + "$ref": "#/definitions/VisibilityConfig" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Capacity", + "/properties/Id", + "/properties/LabelNamespace" + ], + "required": [ + "DefaultAction", + "Scope", + "VisibilityConfig" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wafv2.git", + "typeName": "AWS::WAFv2::WebACL" +} 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 6c3d85a133..439e91017e 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py @@ -81,6 +81,7 @@ "AWS::S3::AccessGrantsInstance", "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -336,6 +337,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -424,6 +426,7 @@ "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::EC2::VPNGatewayRoutePropagation", "AWS::Glue::Crawler", "AWS::CloudFront::Function", @@ -594,6 +597,7 @@ "AWS::RDS::DBClusterParameterGroup", "AWS::WAF::XssMatchSet", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::Scheduler::ScheduleGroup", "AWS::FSx::Snapshot", "AWS::EventSchemas::RegistryPolicy", @@ -820,6 +824,7 @@ "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -853,6 +858,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -929,6 +935,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -946,9 +953,11 @@ "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-sagemaker-inferenceexperiment.json", "aws-cloudformation-stackset.json", + "aws-ec2-route.json", "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", @@ -957,7 +966,6 @@ "aws-iot-resourcespecificlogging.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-wafv2-loggingconfiguration.json", - "aws-dynamodb-globaltable.json", "aws-backup-backupplan.json", "aws-imagebuilder-distributionconfiguration.json", "aws-lakeformation-permissions.json", @@ -1058,6 +1066,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1086,6 +1095,7 @@ "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1096,7 +1106,6 @@ "aws-waf-bytematchset.json", "aws-amplifyuibuilder-theme.json", "aws-neptune-dbclusterparametergroup.json", - "aws-emrserverless-application.json", "aws-ec2-host.json", "aws-lambda-codesigningconfig.json", "aws-systemsmanagersap-application.json", @@ -1136,14 +1145,13 @@ "aws-ec2-transitgatewayconnect.json", "aws-networkmanager-sitetositevpnattachment.json", "aws-ec2-securitygroup.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-ec2-vpngatewayroutepropagation.json", "aws-glue-crawler.json", - "aws-cloudfront-function.json", "aws-apigateway-method.json", "aws-wafregional-regexpatternset.json", "aws-ssm-patchbaseline.json", @@ -1166,6 +1174,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-apigatewayv2-domainname.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", @@ -1247,7 +1256,6 @@ "aws-cognito-userpool.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -1299,6 +1307,7 @@ "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-scheduler-schedulegroup.json", "aws-fsx-snapshot.json", "aws-eventschemas-registrypolicy.json", @@ -1431,6 +1440,7 @@ "aws-chatbot-microsoftteamschannelconfiguration.json", "aws-rds-dbproxy.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-s3outposts-bucketpolicy.json", "aws-batch-jobqueue.json", diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-cloudfront-function.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-cloudfront-function.json new file mode 100644 index 0000000000..df16bc4a81 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-cloudfront-function.json @@ -0,0 +1,129 @@ +{ + "additionalProperties": false, + "definitions": { + "FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "KeyValueStoreAssociations": { + "items": { + "$ref": "#/definitions/KeyValueStoreAssociation" + }, + "type": "array", + "uniqueItems": true + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "KeyValueStoreAssociation": { + "additionalProperties": false, + "properties": { + "KeyValueStoreARN": { + "type": "string" + } + }, + "required": [ + "KeyValueStoreARN" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::CloudFront::Function", + "handlers": { + "create": { + "permissions": [ + "cloudfront:CreateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + }, + "delete": { + "permissions": [ + "cloudfront:DeleteFunction", + "cloudfront:DescribeFunction" + ] + }, + "list": { + "permissions": [ + "cloudfront:ListFunctions" + ] + }, + "read": { + "permissions": [ + "cloudfront:DescribeFunction", + "cloudfront:GetFunction" + ] + }, + "update": { + "permissions": [ + "cloudfront:UpdateFunction", + "cloudfront:PublishFunction", + "cloudfront:DescribeFunction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FunctionARN" + ], + "properties": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionARN": { + "type": "string" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/FunctionMetadata" + }, + "Name": { + "type": "string" + }, + "Stage": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/FunctionARN", + "/properties/FunctionMetadata/FunctionARN", + "/properties/Stage" + ], + "required": [ + "Name", + "FunctionConfig", + "FunctionCode" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::CloudFront::Function", + "writeOnlyProperties": [ + "/properties/AutoPublish" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-route.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-route.json deleted file mode 100644 index 722dba73ff..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-ec2-route.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/RouteTableId", - "/properties/DestinationCidrBlock", - "/properties/DestinationIpv6CidrBlock", - "/properties/DestinationPrefixListId" - ], - "description": "Resource Type definition for AWS::EC2::Route", - "handlers": { - "create": { - "permissions": [ - "ec2:CreateRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - }, - "delete": { - "permissions": [ - "ec2:DeleteRoute", - "ec2:DescribeRouteTables" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "RouteTableId": { - "$ref": "resource-schema.json#/properties/RouteTableId" - } - }, - "required": [ - "RouteTableId" - ] - }, - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeRouteTables" - ] - }, - "update": { - "permissions": [ - "ec2:ReplaceRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeNetworkInterfaces" - ] - } - }, - "primaryIdentifier": [ - "/properties/RouteTableId", - "/properties/CidrBlock" - ], - "properties": { - "CarrierGatewayId": { - "description": "The ID of the carrier gateway.", - "type": "string" - }, - "CidrBlock": { - "description": "The primary identifier of the resource generated by the service.", - "type": "string" - }, - "DestinationCidrBlock": { - "description": "The IPv4 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationIpv6CidrBlock": { - "description": "The IPv6 CIDR block used for the destination match.", - "type": "string" - }, - "DestinationPrefixListId": { - "description": "The ID of managed prefix list, it's a set of one or more CIDR blocks.", - "type": "string" - }, - "EgressOnlyInternetGatewayId": { - "description": "The ID of the egress-only internet gateway.", - "type": "string" - }, - "GatewayId": { - "description": "The ID of an internet gateway or virtual private gateway attached to your VPC.", - "type": "string" - }, - "InstanceId": { - "description": "The ID of a NAT instance in your VPC.", - "type": "string" - }, - "LocalGatewayId": { - "description": "The ID of the local gateway.", - "type": "string" - }, - "NatGatewayId": { - "description": "The ID of a NAT gateway.", - "type": "string" - }, - "NetworkInterfaceId": { - "description": "The ID of the network interface.", - "type": "string" - }, - "RouteTableId": { - "description": "The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.", - "type": "string" - }, - "TransitGatewayId": { - "description": "The ID of a transit gateway.", - "type": "string" - }, - "VpcEndpointId": { - "description": "The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only.", - "type": "string" - }, - "VpcPeeringConnectionId": { - "description": "The ID of a VPC peering connection.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CidrBlock" - ], - "required": [ - "RouteTableId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2", - "tagging": { - "taggable": false - }, - "typeName": "AWS::EC2::Route" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-emrserverless-application.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-emrserverless-application.json new file mode 100644 index 0000000000..b2cb33ba91 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-emrserverless-application.json @@ -0,0 +1,553 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Architecture", + "/properties/ReleaseLabel", + "/properties/WorkerTypeSpecifications", + "/properties/MaximumCapacity", + "/properties/InitialCapacity", + "/properties/AutoStartConfiguration", + "/properties/AutoStopConfiguration", + "/properties/NetworkConfiguration", + "/properties/ImageConfiguration", + "/properties/MonitoringConfiguration", + "/properties/RuntimeConfiguration" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/Type" + ], + "definitions": { + "Architecture": { + "description": "The cpu architecture of an application.", + "enum": [ + "ARM64", + "X86_64" + ], + "type": "string" + }, + "AutoStartConfiguration": { + "additionalProperties": false, + "description": "Configuration for Auto Start of Application", + "properties": { + "Enabled": { + "default": true, + "description": "If set to true, the Application will automatically start. Defaults to true.", + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "AutoStopConfiguration": { + "additionalProperties": false, + "description": "Configuration for Auto Stop of Application", + "properties": { + "Enabled": { + "default": true, + "description": "If set to true, the Application will automatically stop after being idle. Defaults to true.", + "type": "boolean" + }, + "IdleTimeoutMinutes": { + "description": "The amount of time [in minutes] to wait before auto stopping the Application when idle. Defaults to 15 minutes.", + "type": "integer" + } + }, + "required": [], + "type": "object" + }, + "Classification": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "ConfigurationList": { + "description": "Runtime configuration for batch and interactive JobRun.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ConfigurationObject" + }, + "type": "array", + "uniqueItems": true + }, + "ConfigurationObject": { + "additionalProperties": false, + "description": "Configuration for a JobRun.", + "properties": { + "Classification": { + "$ref": "#/definitions/Classification", + "description": "String with a maximum length of 1024." + }, + "Configurations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ConfigurationObject" + }, + "type": "array", + "uniqueItems": true + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z]+[-a-zA-Z0-9_.]*$": { + "$ref": "#/definitions/SensitivePropertiesMap" + } + }, + "type": "object" + } + }, + "required": [ + "Classification" + ], + "type": "object" + }, + "CpuSize": { + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(vCPU|vcpu|VCPU)?$", + "type": "string" + }, + "DiskSize": { + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)$", + "type": "string" + }, + "EncryptionKeyArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:(aws[a-zA-Z0-9-]*):kms:[a-zA-Z0-9\\-]*:(\\d{12})?:key\\/[a-zA-Z0-9-]+$", + "type": "string" + }, + "ImageConfigurationInput": { + "additionalProperties": false, + "description": "The image configuration.", + "properties": { + "ImageUri": { + "description": "The URI of an image in the Amazon ECR registry. This field is required when you create a new application. If you leave this field blank in an update, Amazon EMR will remove the image configuration.", + "maxLength": 1024, + "minLength": 1, + "pattern": "^([a-z0-9]+[a-z0-9-.]*)\\/((?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*)(?:\\:([a-zA-Z0-9_][a-zA-Z0-9-._]{0,299})|@(sha256:[0-9a-f]{64}))$", + "type": "string" + } + }, + "type": "object" + }, + "InitialCapacityConfig": { + "additionalProperties": false, + "properties": { + "WorkerConfiguration": { + "$ref": "#/definitions/WorkerConfiguration" + }, + "WorkerCount": { + "description": "Initial count of workers to be initialized when an Application is started. This count will be continued to be maintained until the Application is stopped", + "format": "int64", + "maximum": 1000000, + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "WorkerCount", + "WorkerConfiguration" + ], + "type": "object" + }, + "InitialCapacityConfigKeyValuePair": { + "additionalProperties": false, + "properties": { + "Key": { + "description": "Worker type for an analytics framework.", + "maxLength": 50, + "minLength": 1, + "pattern": "^[a-zA-Z]+[-_]*[a-zA-Z]+$", + "type": "string" + }, + "Value": { + "$ref": "#/definitions/InitialCapacityConfig" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "InitialCapacityConfigMap": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InitialCapacityConfigKeyValuePair" + }, + "type": "array", + "uniqueItems": true + }, + "ManagedPersistenceMonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "default": true, + "description": "If set to false, managed logging will be turned off. Defaults to true.", + "type": "boolean" + }, + "EncryptionKeyArn": { + "$ref": "#/definitions/EncryptionKeyArn", + "description": "KMS key ARN to encrypt the logs stored in managed persistence" + } + } + }, + "MaximumAllowedResources": { + "additionalProperties": false, + "properties": { + "Cpu": { + "$ref": "#/definitions/CpuSize", + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional." + }, + "Disk": { + "$ref": "#/definitions/DiskSize", + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional" + }, + "Memory": { + "$ref": "#/definitions/MemorySize", + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional." + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "MemorySize": { + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional.", + "maxLength": 15, + "minLength": 1, + "pattern": "^[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)?$", + "type": "string" + }, + "MonitoringConfiguration": { + "additionalProperties": false, + "description": "Monitoring configuration for batch and interactive JobRun.", + "properties": { + "ManagedPersistenceMonitoringConfiguration": { + "$ref": "#/definitions/ManagedPersistenceMonitoringConfiguration", + "description": "Managed log persistence configurations for a JobRun." + }, + "S3MonitoringConfiguration": { + "$ref": "#/definitions/S3MonitoringConfiguration", + "description": "S3 monitoring configurations for a JobRun." + } + }, + "type": "object" + }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "description": "The ID of the security groups in the VPC to which you want to connect your job or application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SecurityGroupId" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "SubnetIds": { + "description": "The ID of the subnets in the VPC to which you want to connect your job or application.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SubnetId" + }, + "maxItems": 16, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "required": [], + "type": "object" + }, + "S3MonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionKeyArn": { + "$ref": "#/definitions/EncryptionKeyArn", + "description": "KMS key ARN to encrypt the logs stored in given s3" + }, + "LogUri": { + "$ref": "#/definitions/UriString" + } + } + }, + "SecurityGroupId": { + "description": "Identifier of a security group", + "maxLength": 32, + "minLength": 1, + "pattern": "^[-0-9a-zA-Z]+", + "type": "string" + }, + "SensitivePropertiesKeyValuePair": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SensitivePropertiesMap": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*\\S.*", + "type": "string" + }, + "SubnetId": { + "description": "Identifier of a subnet", + "maxLength": 32, + "minLength": 1, + "pattern": "^[-0-9a-zA-Z]+", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The value for the tag. You can specify a value that is 1 to 128 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "pattern": "^[A-Za-z0-9 /_.:=+@-]+$", + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 /_.:=+@-]*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UriString": { + "maxLength": 10280, + "minLength": 1, + "pattern": "[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\r\\n\\t]*", + "type": "string" + }, + "WorkerConfiguration": { + "additionalProperties": false, + "properties": { + "Cpu": { + "$ref": "#/definitions/CpuSize", + "description": "Per worker CPU resource. vCPU is the only supported unit and specifying vCPU is optional." + }, + "Disk": { + "$ref": "#/definitions/DiskSize", + "description": "Per worker Disk resource. GB is the only supported unit and specifying GB is optional" + }, + "Memory": { + "$ref": "#/definitions/MemorySize", + "description": "Per worker memory resource. GB is the only supported unit and specifying GB is optional." + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "WorkerTypeSpecificationInput": { + "additionalProperties": false, + "description": "The specifications for a worker type.", + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/ImageConfigurationInput" + } + }, + "type": "object" + }, + "WorkerTypeSpecificationInputMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z]+[-_]*[a-zA-Z]+$": { + "$ref": "#/definitions/WorkerTypeSpecificationInput" + } + }, + "type": "object" + } + }, + "description": "Resource schema for AWS::EMRServerless::Application Type", + "handlers": { + "create": { + "permissions": [ + "kms:Create*", + "kms:Describe*", + "kms:Enable*", + "kms:List*", + "kms:Put*", + "kms:Update*", + "kms:Revoke*", + "kms:Disable*", + "kms:Get*", + "kms:Delete*", + "kms:ScheduleKeyDeletion", + "kms:CancelKeyDeletion", + "kms:GenerateDataKey", + "kms:TagResource", + "kms:UntagResource", + "kms:Decrypt", + "emr-serverless:CreateApplication", + "emr-serverless:TagResource", + "emr-serverless:GetApplication", + "iam:CreateServiceLinkedRole", + "ec2:CreateNetworkInterface", + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetDownloadUrlForLayer" + ] + }, + "delete": { + "permissions": [ + "emr-serverless:DeleteApplication", + "emr-serverless:GetApplication" + ] + }, + "list": { + "permissions": [ + "emr-serverless:ListApplications" + ] + }, + "read": { + "permissions": [ + "emr-serverless:GetApplication" + ] + }, + "update": { + "permissions": [ + "emr-serverless:UpdateApplication", + "emr-serverless:TagResource", + "emr-serverless:UntagResource", + "emr-serverless:GetApplication", + "ec2:CreateNetworkInterface", + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetDownloadUrlForLayer", + "kms:Create*", + "kms:Describe*", + "kms:Enable*", + "kms:List*", + "kms:Put*", + "kms:Update*", + "kms:Revoke*", + "kms:Disable*", + "kms:Get*", + "kms:Delete*", + "kms:ScheduleKeyDeletion", + "kms:CancelKeyDeletion", + "kms:GenerateDataKey", + "kms:TagResource", + "kms:UntagResource", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/ApplicationId" + ], + "properties": { + "ApplicationId": { + "description": "The ID of the EMR Serverless Application.", + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Architecture": { + "$ref": "#/definitions/Architecture" + }, + "Arn": { + "description": "The Amazon Resource Name (ARN) of the EMR Serverless Application.", + "type": "string" + }, + "AutoStartConfiguration": { + "$ref": "#/definitions/AutoStartConfiguration", + "description": "Configuration for Auto Start of Application." + }, + "AutoStopConfiguration": { + "$ref": "#/definitions/AutoStopConfiguration", + "description": "Configuration for Auto Stop of Application." + }, + "ImageConfiguration": { + "$ref": "#/definitions/ImageConfigurationInput" + }, + "InitialCapacity": { + "$ref": "#/definitions/InitialCapacityConfigMap", + "description": "Initial capacity initialized when an Application is started." + }, + "MaximumCapacity": { + "$ref": "#/definitions/MaximumAllowedResources", + "description": "Maximum allowed cumulative resources for an Application. No new resources will be created once the limit is hit." + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/MonitoringConfiguration" + }, + "Name": { + "description": "User friendly Application name.", + "maxLength": 64, + "minLength": 1, + "pattern": "^[A-Za-z0-9._\\/#-]+$", + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration", + "description": "Network Configuration for customer VPC connectivity." + }, + "ReleaseLabel": { + "description": "EMR release label.", + "maxLength": 64, + "minLength": 1, + "pattern": "^[A-Za-z0-9._/-]+$", + "type": "string" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/ConfigurationList" + }, + "Tags": { + "description": "Tag map with key and value", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "description": "The type of the application", + "type": "string" + }, + "WorkerTypeSpecifications": { + "$ref": "#/definitions/WorkerTypeSpecificationInputMap", + "description": "The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types." + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/ApplicationId" + ], + "required": [ + "ReleaseLabel", + "Type" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "taggable": true + }, + "typeName": "AWS::EMRServerless::Application" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-securityhub-hub.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-securityhub-hub.json deleted file mode 100644 index b0401a5225..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-securityhub-hub.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "additionalProperties": false, - "description": "Resource Type definition for AWS::SecurityHub::Hub", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AutoEnableControls": { - "type": "boolean" - }, - "ControlFindingGenerator": { - "type": "string" - }, - "EnableDefaultStandards": { - "type": "boolean" - }, - "Id": { - "type": "string" - }, - "Tags": { - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "typeName": "AWS::SecurityHub::Hub" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} 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 f7faf6a1e7..d86e8131c5 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py @@ -95,6 +95,7 @@ "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", "AWS::MediaStore::Container", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -332,6 +333,7 @@ "AWS::EC2::TransitGatewayMulticastGroupMember", "AWS::EC2::VolumeAttachment", "AWS::Glue::SecurityConfiguration", + "AWS::NetworkFirewall::TLSInspectionConfiguration", "AWS::DataBrew::Ruleset", "AWS::GameLift::MatchmakingConfiguration", "AWS::ApplicationInsights::Application", @@ -391,6 +393,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::AppSync::ApiKey", "AWS::CloudFormation::TypeActivation", @@ -698,6 +701,7 @@ "AWS::WAF::XssMatchSet", "AWS::EC2::VerifiedAccessTrustProvider", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::MediaLive::Multiplex", "AWS::Scheduler::ScheduleGroup", "AWS::AppStream::DirectoryConfig", @@ -973,6 +977,7 @@ "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", "aws-mediastore-container.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -1016,6 +1021,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1065,6 +1071,7 @@ "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", + "aws-sagemaker-app.json", "aws-ec2-vpcgatewayattachment.json", "aws-cloudtrail-trail.json", "aws-ec2-vpnconnectionroute.json", @@ -1096,6 +1103,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-wafregional-xssmatchset.json", "aws-rds-dbproxytargetgroup.json", @@ -1114,6 +1122,7 @@ "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-sagemaker-inferenceexperiment.json", @@ -1197,6 +1206,7 @@ "aws-ec2-transitgatewaymulticastgroupmember.json", "aws-ec2-volumeattachment.json", "aws-glue-securityconfiguration.json", + "aws-networkfirewall-tlsinspectionconfiguration.json", "aws-databrew-ruleset.json", "aws-gamelift-matchmakingconfiguration.json", "aws-applicationinsights-application.json", @@ -1222,6 +1232,7 @@ "aws-amplify-domain.json", "aws-kinesisanalyticsv2-applicationoutput.json", "aws-medialive-inputsecuritygroup.json", + "aws-sagemaker-domain.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", "aws-sdb-domain.json", @@ -1253,6 +1264,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1342,7 +1354,6 @@ "aws-ec2-transitgatewayconnect.json", "aws-ec2-securitygroup.json", "aws-quicksight-theme.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", @@ -1379,6 +1390,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", @@ -1543,6 +1555,7 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", "aws-appstream-directoryconfig.json", @@ -1559,6 +1572,7 @@ "aws-mediaconnect-flowvpcinterface.json", "aws-glue-workflow.json", "aws-apigatewayv2-authorizer.json", + "aws-sagemaker-userprofile.json", "aws-ec2-prefixlist.json", "aws-ec2-instance.json", "aws-ec2-subnetcidrblock.json", diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-app.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-app.json deleted file mode 100644 index da6e3f4330..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-app.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AppName", - "/properties/AppType", - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/Tags", - "/properties/ResourceSpec" - ], - "definitions": { - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "SageMakerImageArn": { - "description": "The ARN of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "minLength": 1, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The ARN of the image version created on the instance.", - "maxLength": 256, - "minLength": 1, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "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" - } - }, - "description": "Resource Type definition for AWS::SageMaker::App", - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:DescribeApp" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteApp" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListApps" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeApp" - ] - } - }, - "primaryIdentifier": [ - "/properties/AppName", - "/properties/AppType", - "/properties/DomainId", - "/properties/UserProfileName" - ], - "properties": { - "AppArn": { - "description": "The Amazon Resource Name (ARN) of the app.", - "maxLength": 256, - "minLength": 1, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:app/.*", - "type": "string" - }, - "AppName": { - "description": "The name of the app.", - "maxLength": 63, - "minLength": 1, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "AppType": { - "description": "The type of app.", - "enum": [ - "JupyterServer", - "KernelGateway", - "RStudioServerPro", - "RSessionGateway", - "Canvas" - ], - "type": "string" - }, - "DomainId": { - "description": "The domain ID.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "ResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance." - }, - "Tags": { - "description": "A list of tags to apply to the app.", - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileName": { - "description": "The user profile name.", - "maxLength": 63, - "minLength": 1, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AppArn" - ], - "required": [ - "AppName", - "AppType", - "DomainId", - "UserProfileName" - ], - "typeName": "AWS::SageMaker::App", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-domain.json deleted file mode 100644 index 1948e2768f..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-domain.json +++ /dev/null @@ -1,575 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AppNetworkAccessType", - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/SubnetIds", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CustomImage": { - "additionalProperties": false, - "description": "A custom SageMaker image.", - "properties": { - "AppImageConfigName": { - "description": "The Name of the AppImageConfig.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "description": "The name of the CustomImage. Must be unique to your account.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "description": "The version number of the CustomImage.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to spaces of Amazon SageMaker Studio. These settings are specified when the Create/Update Domain API is called.", - "properties": { - "ExecutionRole": { - "description": "The execution role for the space.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DomainSettings": { - "additionalProperties": false, - "description": "A collection of Domain settings.", - "properties": { - "RStudioServerProDomainSettings": { - "$ref": "#/definitions/RStudioServerProDomainSettings" - }, - "SecurityGroupIds": { - "description": "The security groups for the Amazon Virtual Private Cloud that the Domain uses for communication between Domain-level apps and user apps.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 3, - "minItems": 1, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "description": "The JupyterServer app settings.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "description": "The kernel gateway app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." - } - }, - "type": "object" - }, - "RSessionAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to an RSessionGateway app.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", - "properties": { - "AccessStatus": { - "description": "Indicates whether the current user has access to the RStudioServerPro app.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "RStudioServerProDomainSettings": { - "additionalProperties": false, - "description": "A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "DomainExecutionRoleArn": { - "description": "The ARN of the execution role for the RStudioServerPro Domain-level app.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "RStudioConnectUrl": { - "description": "A URL pointing to an RStudio Connect server.", - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - }, - "RStudioPackageManagerUrl": { - "description": "A URL pointing to an RStudio Package Manager server.", - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - } - }, - "required": [ - "DomainExecutionRoleArn" - ], - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "LifecycleConfigArn": { - "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "SageMakerImageArn": { - "description": "The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The Amazon Resource Name (ARN) of the image version created on the instance.", - "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, - "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", - "properties": { - "NotebookOutputOption": { - "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "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" - }, - "UserSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", - "properties": { - "ExecutionRole": { - "description": "The execution role for the user.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "RSessionAppSettings": { - "$ref": "#/definitions/RSessionAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings", - "description": "The sharing settings." - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SageMaker::Domain", - "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": { - "description": "Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.", - "enum": [ - "PublicInternetOnly", - "VpcOnly" - ], - "type": "string" - }, - "AppSecurityGroupManagement": { - "description": "The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.", - "enum": [ - "Service", - "Customer" - ], - "type": "string" - }, - "AuthMode": { - "description": "The mode of authentication that members use to access the domain.", - "enum": [ - "SSO", - "IAM" - ], - "type": "string" - }, - "DefaultSpaceSettings": { - "$ref": "#/definitions/DefaultSpaceSettings", - "description": "The default space settings." - }, - "DefaultUserSettings": { - "$ref": "#/definitions/UserSettings", - "description": "The default user settings." - }, - "DomainArn": { - "description": "The Amazon Resource Name (ARN) of the created domain.", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", - "type": "string" - }, - "DomainId": { - "description": "The domain name.", - "maxLength": 63, - "pattern": "^d-(-*[a-z0-9])+", - "type": "string" - }, - "DomainName": { - "description": "A name for the domain.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "DomainSettings": { - "$ref": "#/definitions/DomainSettings" - }, - "HomeEfsFileSystemId": { - "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.", - "maxLength": 32, - "type": "string" - }, - "KmsKeyId": { - "description": "SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "SecurityGroupIdForDomainBoundary": { - "description": "The ID of the security group that authorizes traffic between the RSessionGateway apps and the RStudioServerPro app.", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "SingleSignOnManagedApplicationInstanceId": { - "description": "The SSO managed application instance ID.", - "maxLength": 256, - "type": "string" - }, - "SubnetIds": { - "description": "The VPC subnets that Studio uses for communication.", - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "description": "A list of tags to apply to the user profile.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "Url": { - "description": "The URL to the created domain.", - "maxLength": 1024, - "type": "string" - }, - "VpcId": { - "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/DomainArn", - "/properties/Url", - "/properties/DomainId", - "/properties/HomeEfsFileSystemId", - "/properties/SecurityGroupIdForDomainBoundary", - "/properties/SingleSignOnManagedApplicationInstanceId" - ], - "required": [ - "AuthMode", - "DefaultUserSettings", - "DomainName", - "SubnetIds", - "VpcId" - ], - "typeName": "AWS::SageMaker::Domain", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json deleted file mode 100644 index 8d20becfab..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-sagemaker-userprofile.json +++ /dev/null @@ -1,368 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/SingleSignOnUserIdentifier", - "/properties/SingleSignOnUserValue", - "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", - "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", - "/properties/Tags" - ], - "definitions": { - "CustomImage": { - "additionalProperties": false, - "description": "A custom SageMaker image.", - "properties": { - "AppImageConfigName": { - "description": "The Name of the AppImageConfig.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "description": "The name of the CustomImage. Must be unique to your account.", - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "description": "The version number of the CustomImage.", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "description": "The JupyterServer app settings.", - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "description": "The kernel gateway app settings.", - "properties": { - "CustomImages": { - "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app.", - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec", - "description": "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app." - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "description": "A collection of settings that configure user interaction with the RStudioServerPro app.", - "properties": { - "AccessStatus": { - "description": "Indicates whether the current user has access to the RStudioServerPro app.", - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "description": "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.", - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "description": "The instance type that the image version runs on.", - "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" - ], - "type": "string" - }, - "SageMakerImageArn": { - "description": "The ARN of the SageMaker image that the image version belongs to.", - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "description": "The ARN of the image version created on the instance.", - "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, - "description": "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.", - "properties": { - "NotebookOutputOption": { - "description": "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.", - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "description": "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.", - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "description": "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.", - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "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" - }, - "UserSettings": { - "additionalProperties": false, - "description": "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.", - "properties": { - "ExecutionRole": { - "description": "The user profile Amazon Resource Name (ARN).", - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings", - "description": "The Jupyter server's app settings." - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings", - "description": "The kernel gateway app settings." - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "description": "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.", - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings", - "description": "The sharing settings." - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::SageMaker::UserProfile", - "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": { - "description": "The ID of the associated Domain.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "SingleSignOnUserIdentifier": { - "description": "A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is \"UserName\". If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified.", - "pattern": "UserName", - "type": "string" - }, - "SingleSignOnUserValue": { - "description": "The username of the associated AWS Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified.", - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "description": "A list of tags to apply to the user profile.", - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileArn": { - "description": "The user profile Amazon Resource Name (ARN).", - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", - "type": "string" - }, - "UserProfileName": { - "description": "A name for the UserProfile.", - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "UserSettings": { - "$ref": "#/definitions/UserSettings", - "description": "A collection of settings.", - "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/us_east_1/__init__.py b/src/cfnlint/data/schemas/providers/us_east_1/__init__.py index 4e98276f4b..1bb77f072a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_1/__init__.py @@ -122,6 +122,7 @@ "AWS::Route53::RecordSet", "AWS::MediaStore::Container", "AWS::IoTAnalytics::Datastore", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::IVS::StreamKey", "AWS::ElastiCache::SecurityGroup", @@ -445,6 +446,7 @@ "AWS::RoboMaker::Fleet", "AWS::EC2::VolumeAttachment", "AWS::Glue::SecurityConfiguration", + "AWS::NetworkFirewall::TLSInspectionConfiguration", "AWS::OpenSearchServerless::Collection", "AWS::DataBrew::Ruleset", "AWS::GameLift::MatchmakingConfiguration", @@ -519,6 +521,7 @@ "AWS::IoT::SoftwarePackageVersion", "AWS::EC2::NetworkInsightsAnalysis", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::Omics::VariantStore", "AWS::AppSync::ApiKey", @@ -935,6 +938,7 @@ "AWS::Route53RecoveryReadiness::ReadinessCheck", "AWS::EC2::VerifiedAccessTrustProvider", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::PinpointEmail::ConfigurationSet", "AWS::Pinpoint::EmailTemplate", "AWS::MediaLive::Multiplex", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalingpolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalingpolicy.json index c6ade09a92..6fd3cac0d6 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalingpolicy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-applicationautoscaling-scalingpolicy.json @@ -97,7 +97,8 @@ "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage", "NeptuneReaderAverageCPUUtilization", "SageMakerVariantProvisionedConcurrencyUtilization", - "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage" + "ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage", + "SageMakerInferenceComponentInvocationsPerCopy" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-graphqlapi.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-graphqlapi.json index e6cf7a4956..42c55b62d1 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-graphqlapi.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-appsync-graphqlapi.json @@ -154,12 +154,18 @@ "GraphQLDns": { "type": "string" }, + "GraphQLEndpointArn": { + "type": "string" + }, "GraphQLUrl": { "type": "string" }, "Id": { "type": "string" }, + "IntrospectionConfig": { + "type": "string" + }, "LambdaAuthorizerConfig": { "$ref": "#/definitions/LambdaAuthorizerConfig" }, @@ -178,12 +184,18 @@ "OwnerContact": { "type": "string" }, + "QueryDepthLimit": { + "type": "integer" + }, "RealtimeDns": { "type": "string" }, "RealtimeUrl": { "type": "string" }, + "ResolverCountLimit": { + "type": "integer" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -203,6 +215,7 @@ }, "readOnlyProperties": [ "/properties/ApiId", + "/properties/GraphQLEndpointArn", "/properties/Id", "/properties/GraphQLDns", "/properties/GraphQLUrl", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-aps-workspace.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-aps-workspace.json index 5dcf7b2918..911caeaf8c 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-aps-workspace.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-aps-workspace.json @@ -51,7 +51,10 @@ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:ListLogDeliveries", - "logs:PutResourcePolicy" + "logs:PutResourcePolicy", + "kms:CreateGrant", + "kms:Decrypt", + "kms:GenerateDataKey" ] }, "delete": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-batch-jobdefinition.json index dd6d053f74..084f241db1 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-batch-jobdefinition.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-batch-jobdefinition.json @@ -1,26 +1,24 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/Tags", - "/properties/JobDefinitionName" + "/properties/JobDefinitionName", + "/properties/ContainerProperties", + "/properties/EksProperties", + "/properties/NodeProperties", + "/properties/Parameters", + "/properties/PlatformCapabilities", + "/properties/PropagateTags", + "/properties/RetryStrategy", + "/properties/SchedulingPriority", + "/properties/Timeout", + "/properties/Type" ], "definitions": { - "AuthorizationConfig": { - "additionalProperties": false, - "properties": { - "AccessPointId": { - "type": "string" - }, - "Iam": { - "type": "string" - } - }, - "type": "object" - }, "ContainerProperties": { "additionalProperties": false, "properties": { "Command": { + "insertionOrder": true, "items": { "type": "string" }, @@ -28,6 +26,7 @@ "uniqueItems": false }, "Environment": { + "insertionOrder": true, "items": { "$ref": "#/definitions/Environment" }, @@ -35,13 +34,28 @@ "uniqueItems": false }, "EphemeralStorage": { - "$ref": "#/definitions/EphemeralStorage" + "additionalProperties": false, + "properties": { + "SizeInGiB": { + "type": "integer" + } + }, + "required": [ + "SizeInGiB" + ], + "type": "object" }, "ExecutionRoleArn": { "type": "string" }, "FargatePlatformConfiguration": { - "$ref": "#/definitions/FargatePlatformConfiguration" + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" }, "Image": { "type": "string" @@ -53,23 +67,87 @@ "type": "string" }, "LinuxParameters": { - "$ref": "#/definitions/LinuxParameters" + "additionalProperties": false, + "properties": { + "Devices": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { + "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" }, "LogConfiguration": { - "$ref": "#/definitions/LogConfiguration" + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" }, "Memory": { "type": "integer" }, "MountPoints": { + "insertionOrder": false, "items": { - "$ref": "#/definitions/MountPoints" + "$ref": "#/definitions/MountPoint" }, "type": "array", "uniqueItems": false }, "NetworkConfiguration": { - "$ref": "#/definitions/NetworkConfiguration" + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + } + }, + "type": "object" }, "Privileged": { "type": "boolean" @@ -78,6 +156,7 @@ "type": "boolean" }, "ResourceRequirements": { + "insertionOrder": false, "items": { "$ref": "#/definitions/ResourceRequirement" }, @@ -85,9 +164,19 @@ "uniqueItems": false }, "RuntimePlatform": { - "$ref": "#/definitions/RuntimePlatform" + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" }, "Secrets": { + "insertionOrder": false, "items": { "$ref": "#/definitions/Secret" }, @@ -95,6 +184,7 @@ "uniqueItems": false }, "Ulimits": { + "insertionOrder": false, "items": { "$ref": "#/definitions/Ulimit" }, @@ -108,8 +198,9 @@ "type": "integer" }, "Volumes": { + "insertionOrder": false, "items": { - "$ref": "#/definitions/Volumes" + "$ref": "#/definitions/Volume" }, "type": "array", "uniqueItems": false @@ -130,6 +221,7 @@ "type": "string" }, "Permissions": { + "insertionOrder": false, "items": { "type": "string" }, @@ -139,11 +231,23 @@ }, "type": "object" }, - "EfsVolumeConfiguration": { + "EFSAuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "EFSVolumeConfiguration": { "additionalProperties": false, "properties": { "AuthorizationConfig": { - "$ref": "#/definitions/AuthorizationConfig" + "$ref": "#/definitions/EFSAuthorizationConfig" }, "FileSystemId": { "type": "string" @@ -167,6 +271,7 @@ "additionalProperties": false, "properties": { "Args": { + "insertionOrder": true, "items": { "type": "string" }, @@ -174,6 +279,7 @@ "uniqueItems": false }, "Command": { + "insertionOrder": true, "items": { "type": "string" }, @@ -181,6 +287,7 @@ "uniqueItems": false }, "Env": { + "insertionOrder": false, "items": { "$ref": "#/definitions/EksContainerEnvironmentVariable" }, @@ -203,6 +310,7 @@ "$ref": "#/definitions/EksContainerSecurityContext" }, "VolumeMounts": { + "insertionOrder": false, "items": { "$ref": "#/definitions/EksContainerVolumeMount" }, @@ -234,9 +342,21 @@ "additionalProperties": false, "properties": { "Limits": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, "type": "object" }, "Requests": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, "type": "object" } }, @@ -299,11 +419,60 @@ }, "type": "object" }, + "EksMetadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "EksPodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "Metadata": { + "$ref": "#/definitions/EksMetadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "Volumes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, "EksProperties": { "additionalProperties": false, "properties": { "PodProperties": { - "$ref": "#/definitions/PodProperties" + "$ref": "#/definitions/EksPodProperties" } }, "type": "object" @@ -356,18 +525,6 @@ }, "type": "object" }, - "EphemeralStorage": { - "additionalProperties": false, - "properties": { - "SizeInGiB": { - "type": "integer" - } - }, - "required": [ - "SizeInGiB" - ], - "type": "object" - }, "EvaluateOnExit": { "additionalProperties": false, "properties": { @@ -389,79 +546,25 @@ ], "type": "object" }, - "FargatePlatformConfiguration": { + "Host": { "additionalProperties": false, "properties": { - "PlatformVersion": { + "SourcePath": { "type": "string" } }, "type": "object" }, - "LinuxParameters": { + "JobTimeout": { "additionalProperties": false, "properties": { - "Devices": { - "items": { - "$ref": "#/definitions/Device" - }, - "type": "array", - "uniqueItems": false - }, - "InitProcessEnabled": { - "type": "boolean" - }, - "MaxSwap": { - "type": "integer" - }, - "SharedMemorySize": { - "type": "integer" - }, - "Swappiness": { + "AttemptDurationSeconds": { "type": "integer" - }, - "Tmpfs": { - "items": { - "$ref": "#/definitions/Tmpfs" - }, - "type": "array", - "uniqueItems": false } }, "type": "object" }, - "LogConfiguration": { - "additionalProperties": false, - "properties": { - "LogDriver": { - "type": "string" - }, - "Options": { - "type": "object" - }, - "SecretOptions": { - "items": { - "$ref": "#/definitions/Secret" - }, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "LogDriver" - ], - "type": "object" - }, - "Metadata": { - "additionalProperties": false, - "properties": { - "Labels": { - "type": "object" - } - }, - "type": "object" - }, - "MountPoints": { + "MountPoint": { "additionalProperties": false, "properties": { "ContainerPath": { @@ -476,15 +579,6 @@ }, "type": "object" }, - "NetworkConfiguration": { - "additionalProperties": false, - "properties": { - "AssignPublicIp": { - "type": "string" - } - }, - "type": "object" - }, "NodeProperties": { "additionalProperties": false, "properties": { @@ -492,6 +586,7 @@ "type": "integer" }, "NodeRangeProperties": { + "insertionOrder": false, "items": { "$ref": "#/definitions/NodeRangeProperty" }, @@ -503,9 +598,9 @@ } }, "required": [ + "NumNodes", "MainNode", - "NodeRangeProperties", - "NumNodes" + "NodeRangeProperties" ], "type": "object" }, @@ -524,38 +619,6 @@ ], "type": "object" }, - "PodProperties": { - "additionalProperties": false, - "properties": { - "Containers": { - "items": { - "$ref": "#/definitions/EksContainer" - }, - "type": "array", - "uniqueItems": false - }, - "DnsPolicy": { - "type": "string" - }, - "HostNetwork": { - "type": "boolean" - }, - "Metadata": { - "$ref": "#/definitions/Metadata" - }, - "ServiceAccountName": { - "type": "string" - }, - "Volumes": { - "items": { - "$ref": "#/definitions/EksVolume" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, "ResourceRequirement": { "additionalProperties": false, "properties": { @@ -575,6 +638,7 @@ "type": "integer" }, "EvaluateOnExit": { + "insertionOrder": false, "items": { "$ref": "#/definitions/EvaluateOnExit" }, @@ -584,18 +648,6 @@ }, "type": "object" }, - "RuntimePlatform": { - "additionalProperties": false, - "properties": { - "CpuArchitecture": { - "type": "string" - }, - "OperatingSystemFamily": { - "type": "string" - } - }, - "type": "object" - }, "Secret": { "additionalProperties": false, "properties": { @@ -607,20 +659,11 @@ } }, "required": [ - "ValueFrom", - "Name" + "Name", + "ValueFrom" ], "type": "object" }, - "Timeout": { - "additionalProperties": false, - "properties": { - "AttemptDurationSeconds": { - "type": "integer" - } - }, - "type": "object" - }, "Tmpfs": { "additionalProperties": false, "properties": { @@ -628,6 +671,7 @@ "type": "string" }, "MountOptions": { + "insertionOrder": false, "items": { "type": "string" }, @@ -639,8 +683,8 @@ } }, "required": [ - "Size", - "ContainerPath" + "ContainerPath", + "Size" ], "type": "object" }, @@ -658,61 +702,98 @@ } }, "required": [ - "SoftLimit", "HardLimit", - "Name" + "Name", + "SoftLimit" ], "type": "object" }, - "Volumes": { + "Volume": { "additionalProperties": false, "properties": { "EfsVolumeConfiguration": { - "$ref": "#/definitions/EfsVolumeConfiguration" + "$ref": "#/definitions/EFSVolumeConfiguration" }, "Host": { - "$ref": "#/definitions/VolumesHost" + "$ref": "#/definitions/Host" }, "Name": { "type": "string" } }, "type": "object" - }, - "VolumesHost": { - "additionalProperties": false, - "properties": { - "SourcePath": { - "type": "string" - } - }, - "type": "object" } }, "description": "Resource Type definition for AWS::Batch::JobDefinition", + "handlers": { + "create": { + "permissions": [ + "Batch:RegisterJobDefinition", + "Batch:TagResource", + "Batch:DescribeJobDefinitions", + "Iam:PassRole" + ] + }, + "delete": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:DeregisterJobDefinition", + "Iam:PassRole" + ] + }, + "list": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + }, + "read": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + }, + "update": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:TagResource", + "Batch:UntagResource", + "Iam:PassRole" + ] + } + }, "primaryIdentifier": [ - "/properties/Id" + "/properties/JobDefinitionArn" ], "properties": { + "ContainerOrchestrationType": { + "type": "string" + }, "ContainerProperties": { "$ref": "#/definitions/ContainerProperties" }, "EksProperties": { "$ref": "#/definitions/EksProperties" }, - "Id": { + "JobDefinitionArn": { "type": "string" }, "JobDefinitionName": { + "maxLength": 128, "type": "string" }, "NodeProperties": { "$ref": "#/definitions/NodeProperties" }, "Parameters": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, "type": "object" }, "PlatformCapabilities": { + "insertionOrder": true, "items": { "type": "string" }, @@ -725,24 +806,53 @@ "RetryStrategy": { "$ref": "#/definitions/RetryStrategy" }, + "Revision": { + "type": "integer" + }, "SchedulingPriority": { "type": "integer" }, + "Status": { + "type": "string" + }, "Tags": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "patternProperties": { + ".*": { + "type": "string" + } + }, "type": "object" }, "Timeout": { - "$ref": "#/definitions/Timeout" + "$ref": "#/definitions/JobTimeout" }, "Type": { "type": "string" } }, "readOnlyProperties": [ - "/properties/Id" + "/properties/ContainerOrchestrationType", + "/properties/JobDefinitionArn", + "/properties/Revision", + "/properties/Status" ], "required": [ "Type" ], - "typeName": "AWS::Batch::JobDefinition" + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Batch::JobDefinition", + "writeOnlyProperties": [ + "/properties/ContainerProperties/InstanceType", + "/properties/NodeProperties/NodeRangeProperties/*/Container/FargatePlatformConfiguration/PlatformVersion", + "/properties/NodeProperties/NodeRangeProperties/*/Container/NetworkConfiguration/AssignPublicIp" + ] } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-codecommit-repository.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-codecommit-repository.json index 582d455c0b..601b39c162 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-codecommit-repository.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-codecommit-repository.json @@ -112,6 +112,9 @@ "Id": { "type": "string" }, + "KmsKeyId": { + "type": "string" + }, "Name": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-codedeploy-deploymentgroup.json index a322a0bd01..208990a115 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-codedeploy-deploymentgroup.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-codedeploy-deploymentgroup.json @@ -501,6 +501,9 @@ "type": "array", "uniqueItems": false }, + "TerminationHookEnabled": { + "type": "boolean" + }, "TriggerConfigurations": { "items": { "$ref": "#/definitions/TriggerConfig" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-tasktemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-tasktemplate.json index 76188374c0..8026f80b45 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-tasktemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-tasktemplate.json @@ -3,7 +3,7 @@ "definitions": { "ClientToken": { "description": "the client token string in uuid format", - "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", + "pattern": "^$|[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$", "type": "string" }, "DefaultFieldValue": { @@ -207,7 +207,23 @@ "delete": { "permissions": [ "connect:DeleteTaskTemplate", - "connect:UntagResource" + "connect:UntagResource", + "connect:GetTaskTemplate" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListTaskTemplates" ] }, "read": { @@ -253,7 +269,7 @@ }, "ContactFlowArn": { "description": "The identifier of the contact flow.", - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$", + "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$", "type": "string" }, "Defaults": { @@ -310,5 +326,12 @@ "InstanceArn" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": false, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, "typeName": "AWS::Connect::TaskTemplate" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-user.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-user.json index a79569bcee..b949608f4f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-user.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-connect-user.json @@ -122,7 +122,8 @@ "create": { "permissions": [ "connect:CreateUser", - "connect:TagResource" + "connect:TagResource", + "connect:AssociateUserProficiencies" ] }, "delete": { @@ -133,7 +134,8 @@ }, "read": { "permissions": [ - "connect:DescribeUser" + "connect:DescribeUser", + "connect:ListUserProficiencies" ] }, "update": { @@ -144,7 +146,10 @@ "connect:UpdateUserSecurityProfiles", "connect:UpdateUserHierarchy", "connect:TagResource", - "connect:UntagResource" + "connect:UntagResource", + "connect:AssociateUserProficiencies", + "connect:DisassociateUserProficiencies", + "connect:UpdateUserProficiencies" ] } }, 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 db3b6ac2be..7e1a23d878 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 @@ -377,12 +377,7 @@ "permissions": [ "dynamodb:CreateTable", "dynamodb:CreateTableReplica", - "dynamodb:DescribeContinuousBackups", - "dynamodb:DescribeContributorInsights", - "dynamodb:DescribeKinesisStreamingDestination", - "dynamodb:DescribeTable", - "dynamodb:DescribeTableReplicaAutoScaling", - "dynamodb:DescribeTimeToLive", + "dynamodb:Describe*", "dynamodb:UpdateTimeToLive", "dynamodb:UpdateContributorInsights", "dynamodb:UpdateContinuousBackups", @@ -397,15 +392,12 @@ "dynamodb:TagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", - "dynamodb:DescribeKinesisStreamingDestination", - "dynamodb:DescribeTableReplicaAutoScaling", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:TagResource", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:DescribeScalableTargets", - "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", @@ -423,18 +415,12 @@ }, "delete": { "permissions": [ - "dynamodb:DescribeContinuousBackups", - "dynamodb:DescribeContributorInsights", - "dynamodb:DescribeKinesisStreamingDestination", - "dynamodb:DescribeTable", - "dynamodb:DescribeTableReplicaAutoScaling", - "dynamodb:DescribeTimeToLive", + "dynamodb:Describe*", "dynamodb:DeleteTable", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:DescribeScalableTargets", - "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget" @@ -448,14 +434,8 @@ }, "read": { "permissions": [ - "dynamodb:DescribeContinuousBackups", - "dynamodb:DescribeContributorInsights", - "dynamodb:DescribeKinesisStreamingDestination", - "dynamodb:DescribeTable", - "dynamodb:DescribeTableReplicaAutoScaling", - "dynamodb:DescribeTimeToLive", - "application-autoscaling:DescribeScalableTargets", - "application-autoscaling:DescribeScalingPolicies", + "dynamodb:Describe*", + "application-autoscaling:Describe*", "cloudwatch:PutMetricData", "dynamodb:ListTagsOfResource", "kms:DescribeKey" @@ -463,12 +443,7 @@ }, "update": { "permissions": [ - "dynamodb:DescribeContinuousBackups", - "dynamodb:DescribeContributorInsights", - "dynamodb:DescribeKinesisStreamingDestination", - "dynamodb:DescribeTable", - "dynamodb:DescribeTableReplicaAutoScaling", - "dynamodb:DescribeTimeToLive", + "dynamodb:Describe*", "dynamodb:CreateTableReplica", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive", @@ -489,14 +464,11 @@ "dynamodb:UntagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", - "dynamodb:DescribeKinesisStreamingDestination", - "dynamodb:DescribeTableReplicaAutoScaling", "dynamodb:UpdateTableReplicaAutoScaling", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:DescribeScalableTargets", - "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-capacityreservationfleet.json index 6b29f2e51d..368bd5f482 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-capacityreservationfleet.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-capacityreservationfleet.json @@ -84,7 +84,8 @@ "ec2:DescribeCapacityReservations", "ec2:CancelCapacityReservation", "ec2:DescribeInstances", - "ec2:CreateTags" + "ec2:CreateTags", + "iam:CreateServiceLinkedRole" ] }, "delete": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-subnet.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-subnet.json index 1e4d39cfd3..b4469516b4 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-subnet.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-subnet.json @@ -88,10 +88,6 @@ "EnableDns64": { "type": "boolean" }, - "Ipv4NetmaskLength": { - "description": "The netmask length of the IPv4 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", - "type": "integer" - }, "Ipv6CidrBlock": { "type": "string" }, @@ -105,10 +101,6 @@ "Ipv6Native": { "type": "boolean" }, - "Ipv6NetmaskLength": { - "description": "The netmask length of the IPv6 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", - "type": "integer" - }, "MapPublicIpOnLaunch": { "type": "boolean" }, @@ -149,8 +141,7 @@ }, "readOnlyProperties": [ "/properties/NetworkAclAssociationId", - "/properties/SubnetId", - "/properties/Ipv6CidrBlocks" + "/properties/SubnetId" ], "required": [ "VpcId" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-clustercapacityproviderassociations.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-clustercapacityproviderassociations.json index f4c492bd06..1f0d902bba 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-clustercapacityproviderassociations.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-clustercapacityproviderassociations.json @@ -118,5 +118,11 @@ "DefaultCapacityProviderStrategy" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, "typeName": "AWS::ECS::ClusterCapacityProviderAssociations" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json index 6c8e897e37..47fb742bb9 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ecs-service.json @@ -373,6 +373,20 @@ }, "type": "object" }, + "ServiceVolumeConfiguration": { + "properties": { + "ManagedEBSVolume": { + "$ref": "#/definitions/ServiceManagedEBSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, "Tag": { "additionalProperties": false, "properties": { @@ -535,6 +549,12 @@ }, "TaskDefinition": { "type": "string" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/ServiceVolumeConfiguration" + }, + "type": "array" } }, "readOnlyProperties": [ @@ -550,6 +570,7 @@ }, "typeName": "AWS::ECS::Service", "writeOnlyProperties": [ - "/properties/ServiceConnectConfiguration" + "/properties/ServiceConnectConfiguration", + "/properties/VolumeConfigurations" ] } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-efs-filesystem.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-efs-filesystem.json index 7d831899ac..3c98806f7d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-efs-filesystem.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-efs-filesystem.json @@ -64,7 +64,10 @@ "AFTER_30_DAYS", "AFTER_60_DAYS", "AFTER_90_DAYS", - "AFTER_1_DAY" + "AFTER_1_DAY", + "AFTER_180_DAYS", + "AFTER_270_DAYS", + "AFTER_365_DAYS" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-eks-accessentry.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-eks-accessentry.json new file mode 100644 index 0000000000..e3e5b2dae8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-eks-accessentry.json @@ -0,0 +1,199 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PrincipalArn", + "/properties/ClusterName", + "/properties/Type" + ], + "definitions": { + "AccessPolicy": { + "additionalProperties": false, + "description": "An access policy to associate with the current access entry.", + "properties": { + "AccessScope": { + "$ref": "#/definitions/AccessScope" + }, + "PolicyArn": { + "description": "The ARN of the access policy to add to the access entry.", + "type": "string" + } + }, + "required": [ + "PolicyArn", + "AccessScope" + ], + "type": "object" + }, + "AccessScope": { + "additionalProperties": false, + "description": "The access scope of the access policy.", + "properties": { + "Namespaces": { + "description": "The namespaces to associate with the access scope. Only specify if Type is set to 'namespace'.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "description": "The type of the access scope.", + "enum": [ + "namespace", + "cluster" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "An object representing an Amazon EKS AccessEntry.", + "handlers": { + "create": { + "permissions": [ + "eks:CreateAccessEntry", + "eks:DescribeAccessEntry", + "eks:AssociateAccessPolicy", + "eks:TagResource", + "eks:ListAssociatedAccessPolicies" + ] + }, + "delete": { + "permissions": [ + "eks:DeleteAccessEntry", + "eks:DescribeAccessEntry" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ClusterName": { + "$ref": "resource-schema.json#/properties/ClusterName" + } + }, + "required": [ + "ClusterName" + ] + }, + "permissions": [ + "eks:ListAccessEntries" + ] + }, + "read": { + "permissions": [ + "eks:DescribeAccessEntry", + "eks:ListAssociatedAccessPolicies" + ] + }, + "update": { + "permissions": [ + "eks:DescribeAccessEntry", + "eks:ListAssociatedAccessPolicies", + "eks:UpdateAccessEntry", + "eks:AssociateAccessPolicy", + "eks:DisassociateAccessPolicy", + "eks:TagResource", + "eks:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/PrincipalArn", + "/properties/ClusterName" + ], + "properties": { + "AccessEntryArn": { + "description": "The ARN of the access entry.", + "type": "string" + }, + "AccessPolicies": { + "description": "An array of access policies that are associated with the access entry.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AccessPolicy" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "ClusterName": { + "description": "The cluster that the access entry is created for.", + "type": "string" + }, + "KubernetesGroups": { + "description": "The Kubernetes groups that the access entry is associated with.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "PrincipalArn": { + "description": "The principal ARN that the access entry is created for.", + "type": "string" + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "Type": { + "description": "The node type to associate with the access entry.", + "type": "string" + }, + "Username": { + "description": "The Kubernetes user that the access entry is associated with.", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AccessEntryArn" + ], + "replacementStrategy": "create_then_delete", + "required": [ + "PrincipalArn", + "ClusterName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EKS::AccessEntry" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-eks-cluster.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-eks-cluster.json index 4f8dd35998..8040571b3a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-eks-cluster.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-eks-cluster.json @@ -4,10 +4,31 @@ "/properties/OutpostConfig", "/properties/EncryptionConfig", "/properties/KubernetesNetworkConfig", + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", "/properties/Name", "/properties/RoleArn" ], "definitions": { + "AccessConfig": { + "additionalProperties": false, + "description": "An object representing the Access Config to use for the cluster.", + "properties": { + "AuthenticationMode": { + "description": "Specify the authentication mode that should be used to create your cluster.", + "enum": [ + "CONFIG_MAP", + "API_AND_CONFIG_MAP", + "API" + ], + "type": "string" + }, + "BootstrapClusterCreatorAdminPermissions": { + "description": "Set this value to false to avoid creating a default cluster admin Access Entry using the IAM principal used to create the cluster.", + "type": "boolean" + } + }, + "type": "object" + }, "ClusterLogging": { "additionalProperties": false, "description": "The cluster control plane logging configuration for your cluster. ", @@ -271,6 +292,9 @@ "/properties/Name" ], "properties": { + "AccessConfig": { + "$ref": "#/definitions/AccessConfig" + }, "Arn": { "description": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.", "type": "string" @@ -367,5 +391,8 @@ "tagUpdatable": true, "taggable": true }, - "typeName": "AWS::EKS::Cluster" + "typeName": "AWS::EKS::Cluster", + "writeOnlyProperties": [ + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions" + ] } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-cluster.json index c5c25a48e5..7ce37fccb6 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-cluster.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-emr-cluster.json @@ -8,14 +8,17 @@ "/properties/Configurations", "/properties/ReleaseLabel", "/properties/BootstrapActions", + "/properties/EbsRootVolumeIops", "/properties/KerberosAttributes", "/properties/ServiceRole", "/properties/LogEncryptionKmsKeyId", "/properties/Name", + "/properties/EbsRootVolumeThroughput", "/properties/JobFlowRole", "/properties/AdditionalInfo", "/properties/LogUri", "/properties/CustomAmiId", + "/properties/PlacementGroupConfigs", "/properties/OSReleaseLabel", "/properties/AutoScalingRole", "/properties/Applications" @@ -513,6 +516,21 @@ ], "type": "object" }, + "PlacementGroupConfig": { + "additionalProperties": false, + "properties": { + "InstanceRole": { + "type": "string" + }, + "PlacementStrategy": { + "type": "string" + } + }, + "required": [ + "InstanceRole" + ], + "type": "object" + }, "PlacementType": { "additionalProperties": false, "properties": { @@ -747,9 +765,15 @@ "CustomAmiId": { "type": "string" }, + "EbsRootVolumeIops": { + "type": "integer" + }, "EbsRootVolumeSize": { "type": "integer" }, + "EbsRootVolumeThroughput": { + "type": "integer" + }, "Id": { "type": "string" }, @@ -780,6 +804,13 @@ "OSReleaseLabel": { "type": "string" }, + "PlacementGroupConfigs": { + "items": { + "$ref": "#/definitions/PlacementGroupConfig" + }, + "type": "array", + "uniqueItems": true + }, "ReleaseLabel": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-emrserverless-application.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-emrserverless-application.json index b2cb33ba91..713962ba48 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-emrserverless-application.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-emrserverless-application.json @@ -62,6 +62,37 @@ "pattern": ".*\\S.*", "type": "string" }, + "CloudWatchLoggingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "default": false, + "description": "If set to false, CloudWatch logging will be turned off. Defaults to false.", + "type": "boolean" + }, + "EncryptionKeyArn": { + "$ref": "#/definitions/EncryptionKeyArn", + "description": "KMS key ARN to encrypt the logs stored in given CloudWatch log-group." + }, + "LogGroupName": { + "$ref": "#/definitions/LogGroupName", + "description": "Log-group name to produce log-streams on CloudWatch. If undefined, logs will be produced in a default log-group /aws/emr-serverless" + }, + "LogStreamNamePrefix": { + "$ref": "#/definitions/LogStreamNamePrefix", + "description": "Log-stream name prefix by which log-stream names will start in the CloudWatch Log-group." + }, + "LogTypeMap": { + "description": "The specific log-streams which need to be uploaded to CloudWatch.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LogTypeMapKeyValuePair" + }, + "type": "array", + "uniqueItems": true + } + } + }, "ConfigurationList": { "description": "Runtime configuration for batch and interactive JobRun.", "insertionOrder": false, @@ -184,6 +215,51 @@ "type": "array", "uniqueItems": true }, + "LogGroupName": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[\\.\\-_/#A-Za-z0-9]+$", + "type": "string" + }, + "LogStreamNamePrefix": { + "maxLength": 512, + "minLength": 1, + "pattern": "^[^:*]*$", + "type": "string" + }, + "LogTypeList": { + "description": "List of Applicable values: [STDOUT, STDERR, HIVE_LOG, TEZ_AM, SYSTEM_LOGS]", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/LogTypeString" + }, + "maxItems": 5, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "LogTypeMapKeyValuePair": { + "additionalProperties": false, + "properties": { + "Key": { + "$ref": "#/definitions/WorkerTypeString" + }, + "Value": { + "$ref": "#/definitions/LogTypeList" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "LogTypeString": { + "maxLength": 50, + "minLength": 1, + "pattern": "^[a-zA-Z]+[-_]*[a-zA-Z]+$", + "type": "string" + }, "ManagedPersistenceMonitoringConfiguration": { "additionalProperties": false, "properties": { @@ -231,6 +307,10 @@ "additionalProperties": false, "description": "Monitoring configuration for batch and interactive JobRun.", "properties": { + "CloudWatchLoggingConfiguration": { + "$ref": "#/definitions/CloudWatchLoggingConfiguration", + "description": "CloudWatch logging configurations for a JobRun." + }, "ManagedPersistenceMonitoringConfiguration": { "$ref": "#/definitions/ManagedPersistenceMonitoringConfiguration", "description": "Managed log persistence configurations for a JobRun." @@ -380,6 +460,12 @@ } }, "type": "object" + }, + "WorkerTypeString": { + "maxLength": 50, + "minLength": 1, + "pattern": "^[a-zA-Z]+[-_]*[a-zA-Z]+$", + "type": "string" } }, "description": "Resource schema for AWS::EMRServerless::Application Type", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-image.json index ffc0faff18..223d64e03e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-image.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-image.json @@ -4,6 +4,7 @@ "/properties/ImageRecipeArn", "/properties/ContainerRecipeArn", "/properties/InfrastructureConfigurationArn", + "/properties/Workflows", "/properties/DistributionConfigurationArn", "/properties/ImageTestsConfiguration", "/properties/ImageScanningConfiguration", @@ -61,6 +62,58 @@ } }, "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" } }, "description": "Resource schema for AWS::ImageBuilder::Image", @@ -69,10 +122,12 @@ "permissions": [ "ecr:BatchGetRepositoryScanningConfiguration", "iam:GetRole", + "iam:PassRole", "iam:CreateServiceLinkedRole", "imagebuilder:GetImageRecipe", "imagebuilder:GetInfrastructureConfiguration", "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetWorkflow", "imagebuilder:GetImage", "imagebuilder:CreateImage", "imagebuilder:TagResource", @@ -143,6 +198,10 @@ "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", "type": "boolean" }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, "ImageId": { "description": "The AMI ID of the EC2 AMI in current region.", "type": "string" @@ -180,6 +239,14 @@ } }, "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-imagepipeline.json index cbb3f06de2..3cf9b2a4a9 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-imagepipeline.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-imagepipeline.json @@ -73,6 +73,58 @@ } }, "type": "object" + }, + "WorkflowConfiguration": { + "additionalProperties": false, + "description": "The workflow configuration of the image", + "properties": { + "OnFailure": { + "description": "Define execution decision in case of workflow failure", + "enum": [ + "CONTINUE", + "ABORT" + ], + "type": "string" + }, + "ParallelGroup": { + "description": "The parallel group name", + "type": "string" + }, + "Parameters": { + "description": "The parameters associated with the workflow", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/WorkflowParameter" + }, + "type": "array" + }, + "WorkflowArn": { + "description": "The Amazon Resource Name (ARN) of the workflow", + "type": "string" + } + }, + "type": "object" + }, + "WorkflowParameter": { + "additionalProperties": false, + "description": "A parameter associated with the workflow", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowParameterValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "WorkflowParameterValue": { + "description": "The value associated with the workflow parameter", + "type": "string" } }, "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", @@ -81,6 +133,7 @@ "permissions": [ "ecr:BatchGetRepositoryScanningConfiguration", "iam:GetRole", + "iam:PassRole", "iam:CreateServiceLinkedRole", "imagebuilder:TagResource", "imagebuilder:GetImagePipeline", @@ -88,6 +141,7 @@ "imagebuilder:GetInfrastructureConfiguration", "imagebuilder:GetDistributionConfiguration", "imagebuilder:CreateImagePipeline", + "imagebuilder:GetWorkflow", "inspector2:BatchGetAccountStatus" ] }, @@ -110,8 +164,10 @@ }, "update": { "permissions": [ + "iam:PassRole", "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline" + "imagebuilder:UpdateImagePipeline", + "imagebuilder:GetWorkflow" ] } }, @@ -155,6 +211,10 @@ "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", "type": "boolean" }, + "ExecutionRole": { + "description": "The execution role name/ARN for the image build, if provided", + "type": "string" + }, "ImageRecipeArn": { "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", "type": "string" @@ -196,6 +256,14 @@ } }, "type": "object" + }, + "Workflows": { + "description": "Workflows to define the image build process", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/WorkflowConfiguration" + }, + "type": "array" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-workflow.json similarity index 100% rename from src/cfnlint/data/schemas/providers/ap_east_1/aws-imagebuilder-workflow.json rename to src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-workflow.json diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-iot-certificateprovider.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-certificateprovider.json similarity index 100% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-iot-certificateprovider.json rename to src/cfnlint/data/schemas/providers/us_east_1/aws-iot-certificateprovider.json diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-gateway.json index 2c70369407..fbe3929817 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-gateway.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-gateway.json @@ -106,15 +106,21 @@ "create": { "permissions": [ "iotsitewise:CreateGateway", + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:UpdateGatewayCapabilityConfiguration", "iam:PassRole", "iam:GetRole", "greengrass:GetCoreDevice", + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", "iot:DescribeThing" ] }, "delete": { "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:DeleteGateway" ] }, @@ -137,6 +143,7 @@ "iotsitewise:TagResource", "iotsitewise:UntagResource", "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", "iotsitewise:ListTagsForResource" ] } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-portal.json index 1f96697cad..6079f4d455 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-portal.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-portal.json @@ -32,6 +32,8 @@ "create": { "permissions": [ "iotsitewise:CreatePortal", + "iotsitewise:DescribePortal", + "iotsitewise:ListTagsForResource", "iotsitewise:TagResource", "iam:PassRole", "sso:CreateManagedApplicationInstance", @@ -40,6 +42,7 @@ }, "delete": { "permissions": [ + "iotsitewise:DescribePortal", "iotsitewise:DeletePortal", "sso:DeleteManagedApplicationInstance" ] @@ -51,11 +54,13 @@ }, "read": { "permissions": [ - "iotsitewise:DescribePortal" + "iotsitewise:DescribePortal", + "iotsitewise:ListTagsForResource" ] }, "update": { "permissions": [ + "iotsitewise:DescribePortal", "iotsitewise:ListTagsForResource", "iotsitewise:TagResource", "iotsitewise:UpdatePortal", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-project.json index 0e457b1491..61f3553a17 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-project.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-project.json @@ -31,11 +31,16 @@ "create": { "permissions": [ "iotsitewise:CreateProject", + "iotsitewise:DescribeProject", + "iotsitewise:ListProjectAssets", + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", "iotsitewise:BatchAssociateProjectAssets" ] }, "delete": { "permissions": [ + "iotsitewise:DescribeProject", "iotsitewise:DeleteProject" ] }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json index eef62c32fd..105a988d9b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-function.json @@ -548,7 +548,9 @@ "ruby3.2", "python3.11", "nodejs20.x", - "provided.al2023" + "provided.al2023", + "python3.12", + "java21" ], "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-querydefinition.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-querydefinition.json index 09f285daf8..a173106876 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-querydefinition.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-querydefinition.json @@ -12,31 +12,27 @@ "handlers": { "create": { "permissions": [ - "logs:PutQueryDefinition", - "logs:DescribeQueryDefinition" + "logs:PutQueryDefinition" ] }, "delete": { "permissions": [ - "logs:DescribeQueryDefinition", "logs:DeleteQueryDefinition" ] }, "list": { "permissions": [ - "logs:DescribeQueryDefinition" + "logs:DescribeQueryDefinitions" ] }, "read": { "permissions": [ - "logs:DescribeQueryDefinition" + "logs:DescribeQueryDefinitions" ] }, "update": { "permissions": [ - "logs:PutQueryDefinition", - "logs:DescribeQueryDefinition", - "logs:DeleteQueryDefinition" + "logs:PutQueryDefinition" ] } }, @@ -80,6 +76,8 @@ "QueryString" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", - "taggable": false, + "tagging": { + "taggable": false + }, "typeName": "AWS::Logs::QueryDefinition" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-resourcepolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-resourcepolicy.json index 746940c021..82fe1774cb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-resourcepolicy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-resourcepolicy.json @@ -58,6 +58,8 @@ "PolicyDocument" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", - "taggable": false, + "tagging": { + "taggable": false + }, "typeName": "AWS::Logs::ResourcePolicy" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-subscriptionfilter.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-subscriptionfilter.json index 78c0dd362a..6310248439 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-subscriptionfilter.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-logs-subscriptionfilter.json @@ -41,6 +41,7 @@ }, "update": { "permissions": [ + "iam:PassRole", "logs:PutSubscriptionFilter", "logs:DescribeSubscriptionFilters" ] diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-neptune-dbcluster.json index a5c2c052d7..af8dd612b4 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-neptune-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-neptune-dbcluster.json @@ -103,6 +103,7 @@ "rds:DescribeGlobalClusters", "rds:ListTagsForResource", "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", "kms:*" ], "timeoutInMinutes": 2160 diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewallpolicy.json index 663e175b39..b3671e5883 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewallpolicy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-firewallpolicy.json @@ -109,6 +109,9 @@ }, "type": "array", "uniqueItems": false + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" } }, "required": [ @@ -279,6 +282,7 @@ "permissions": [ "network-firewall:CreateFirewallPolicy", "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTLSInspectionConfigurations", "network-firewall:TagResource", "network-firewall:ListRuleGroups" ] @@ -307,7 +311,8 @@ "network-firewall:DescribeFirewallPolicy", "network-firewall:TagResource", "network-firewall:UntagResource", - "network-firewall:ListRuleGroups" + "network-firewall:ListRuleGroups", + "network-firewall:ListTLSInspectionConfigurations" ] } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-tlsinspectionconfiguration.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-tlsinspectionconfiguration.json new file mode 100644 index 0000000000..6970187a8d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-networkfirewall-tlsinspectionconfiguration.json @@ -0,0 +1,286 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TLSInspectionConfigurationName" + ], + "definitions": { + "Address": { + "additionalProperties": false, + "properties": { + "AddressDefinition": { + "maxLength": 255, + "minLength": 1, + "pattern": "^([a-fA-F\\d:\\.]+/\\d{1,3})$", + "type": "string" + } + }, + "required": [ + "AddressDefinition" + ], + "type": "object" + }, + "PortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "$ref": "#/definitions/PortRangeBound" + }, + "ToPort": { + "$ref": "#/definitions/PortRangeBound" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "PortRangeBound": { + "maximum": 65535, + "minimum": 0, + "type": "integer" + }, + "ProtocolNumber": { + "maximum": 255, + "minimum": 0, + "type": "integer" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RevokedStatusAction": { + "enum": [ + "PASS", + "DROP", + "REJECT" + ], + "type": "string" + }, + "ServerCertificate": { + "additionalProperties": false, + "properties": { + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "type": "object" + }, + "ServerCertificateConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateAuthorityArn": { + "$ref": "#/definitions/ResourceArn" + }, + "CheckCertificateRevocationStatus": { + "additionalProperties": false, + "properties": { + "RevokedStatusAction": { + "$ref": "#/definitions/RevokedStatusAction" + }, + "UnknownStatusAction": { + "$ref": "#/definitions/UnknownStatusAction" + } + }, + "type": "object" + }, + "Scopes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ServerCertificateScope" + }, + "type": "array", + "uniqueItems": false + }, + "ServerCertificates": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ServerCertificate" + }, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "ServerCertificateScope": { + "additionalProperties": false, + "properties": { + "DestinationPorts": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PortRange" + }, + "type": "array", + "uniqueItems": false + }, + "Destinations": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Address" + }, + "type": "array", + "uniqueItems": false + }, + "Protocols": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ProtocolNumber" + }, + "type": "array", + "uniqueItems": false + }, + "SourcePorts": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PortRange" + }, + "type": "array", + "uniqueItems": false + }, + "Sources": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Address" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "TLSInspectionConfiguration": { + "additionalProperties": false, + "properties": { + "ServerCertificateConfigurations": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ServerCertificateConfiguration" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UnknownStatusAction": { + "enum": [ + "PASS", + "DROP", + "REJECT" + ], + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::TLSInspectionConfiguration", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateTLSInspectionConfiguration", + "network-firewall:DescribeTLSInspectionConfiguration", + "network-firewall:TagResource" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteTLSInspectionConfiguration", + "network-firewall:DescribeTLSInspectionConfiguration", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListTLSInspectionConfigurations" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeTLSInspectionConfiguration", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateTLSInspectionConfiguration", + "network-firewall:DescribeTLSInspectionConfiguration", + "network-firewall:TagResource", + "network-firewall:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TLSInspectionConfigurationArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "TLSInspectionConfiguration": { + "$ref": "#/definitions/TLSInspectionConfiguration" + }, + "TLSInspectionConfigurationArn": { + "$ref": "#/definitions/ResourceArn" + }, + "TLSInspectionConfigurationId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "TLSInspectionConfigurationName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/TLSInspectionConfigurationArn", + "/properties/TLSInspectionConfigurationId" + ], + "required": [ + "TLSInspectionConfigurationName", + "TLSInspectionConfiguration" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::TLSInspectionConfiguration" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-pinpoint-gcmchannel.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-pinpoint-gcmchannel.json index 809ffcf3bf..97a296302e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-pinpoint-gcmchannel.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-pinpoint-gcmchannel.json @@ -14,19 +14,24 @@ "ApplicationId": { "type": "string" }, + "DefaultAuthenticationMethod": { + "type": "string" + }, "Enabled": { "type": "boolean" }, "Id": { "type": "string" + }, + "ServiceJson": { + "type": "string" } }, "readOnlyProperties": [ "/properties/Id" ], "required": [ - "ApplicationId", - "ApiKey" + "ApplicationId" ], "typeName": "AWS::Pinpoint::GCMChannel" } 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 97f1246c00..2c7cb16560 100644 --- a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py @@ -111,6 +111,7 @@ "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Route53::RecordSet", "AWS::IoTAnalytics::Datastore", + "AWS::EKS::AccessEntry", "AWS::AmplifyUIBuilder::Form", "AWS::ElastiCache::SecurityGroup", "AWS::Backup::Framework", @@ -180,6 +181,7 @@ "AWS::Transfer::Workflow", "AWS::QLDB::Ledger", "AWS::S3::AccessGrant", + "AWS::NeptuneGraph::PrivateGraphEndpoint", "AWS::AppConfig::DeploymentStrategy", "AWS::Glue::DevEndpoint", "AWS::SageMaker::ModelPackage", @@ -572,11 +574,13 @@ "AWS::EMRContainers::VirtualCluster", "AWS::EC2::SecurityGroup", "AWS::QuickSight::Theme", + "AWS::NeptuneGraph::Graph", "AWS::EC2::CapacityReservationFleet", "AWS::OpsWorks::Volume", "AWS::SES::EmailIdentity", "AWS::IAM::UserToGroupAddition", "AWS::Events::Rule", + "AWS::CloudFront::KeyValueStore", "AWS::GameLift::GameSessionQueue", "AWS::DataBrew::Dataset", "AWS::EC2::VPNGatewayRoutePropagation", @@ -823,6 +827,7 @@ "AWS::WAF::XssMatchSet", "AWS::EC2::VerifiedAccessTrustProvider", "AWS::AppMesh::VirtualRouter", + "AWS::IoT::CertificateProvider", "AWS::MediaLive::Multiplex", "AWS::Scheduler::ScheduleGroup", "AWS::AppStream::DirectoryConfig", @@ -1157,6 +1162,7 @@ "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", "aws-iotanalytics-datastore.json", + "aws-eks-accessentry.json", "aws-amplifyuibuilder-form.json", "aws-elasticache-securitygroup.json", "aws-backup-framework.json", @@ -1198,7 +1204,6 @@ "aws-docdb-dbinstance.json", "aws-lakeformation-datacellsfilter.json", "aws-datasync-locationhdfs.json", - "aws-iotsitewise-portal.json", "aws-events-archive.json", "aws-msk-cluster.json", "aws-appstream-appblockbuilder.json", @@ -1206,6 +1211,7 @@ "aws-codepipeline-pipeline.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-cloud9-environmentec2.json", @@ -1286,7 +1292,6 @@ "aws-ssm-document.json", "aws-iam-role.json", "aws-dms-endpoint.json", - "aws-iotsitewise-project.json", "aws-medialive-multiplexprogram.json", "aws-elasticache-serverlesscache.json", "aws-cloudfront-cloudfrontoriginaccessidentity.json", @@ -1309,6 +1314,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-entityresolution-schemamapping.json", "aws-wafregional-xssmatchset.json", @@ -1332,6 +1338,7 @@ "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-amplifyuibuilder-component.json", "aws-location-trackerconsumer.json", "aws-vpclattice-servicenetwork.json", @@ -1499,6 +1506,7 @@ "aws-iot-softwarepackageversion.json", "aws-ec2-networkinsightsanalysis.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-ecs-taskset.json", "aws-appsync-apikey.json", "aws-cloudformation-typeactivation.json", @@ -1543,6 +1551,7 @@ "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-networkmanager-site.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", @@ -1605,11 +1614,11 @@ "aws-emrcontainers-virtualcluster.json", "aws-ec2-securitygroup.json", "aws-quicksight-theme.json", - "aws-ec2-capacityreservationfleet.json", "aws-opsworks-volume.json", "aws-ses-emailidentity.json", "aws-iam-usertogroupaddition.json", "aws-events-rule.json", + "aws-cloudfront-keyvaluestore.json", "aws-gamelift-gamesessionqueue.json", "aws-databrew-dataset.json", "aws-ec2-vpngatewayroutepropagation.json", @@ -1645,6 +1654,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-rds-dbcluster.json", @@ -1685,7 +1695,6 @@ "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", - "aws-iotsitewise-gateway.json", "aws-emr-studiosessionmapping.json", "aws-cloudformation-macro.json", "aws-robomaker-robotapplication.json", @@ -1764,7 +1773,6 @@ "aws-secretsmanager-rotationschedule.json", "aws-ec2-verifiedaccessinstance.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-iot1click-device.json", "aws-ec2-ipamresourcediscoveryassociation.json", @@ -1773,11 +1781,13 @@ "aws-lightsail-loadbalancertlscertificate.json", "aws-ec2-clientvpntargetnetworkassociation.json", "aws-mediapackagev2-originendpoint.json", + "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", "aws-athena-capacityreservation.json", "aws-config-conformancepack.json", "aws-ec2-vpccidrblock.json", + "aws-aps-workspace.json", "aws-kendra-datasource.json", "aws-apprunner-vpcingressconnection.json", "aws-gamelift-script.json", @@ -1848,6 +1858,7 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", + "aws-iot-certificateprovider.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", "aws-appstream-directoryconfig.json", diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-aps-workspace.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-aps-workspace.json deleted file mode 100644 index 911caeaf8c..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-aps-workspace.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "LoggingConfiguration": { - "additionalProperties": false, - "description": "Logging configuration", - "properties": { - "LogGroupArn": { - "description": "CloudWatch log group ARN", - "maxLength": 512, - "minLength": 0, - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::APS::Workspace", - "handlers": { - "create": { - "permissions": [ - "aps:CreateWorkspace", - "aps:DescribeWorkspace", - "aps:TagResource", - "aps:CreateAlertManagerDefinition", - "aps:DescribeAlertManagerDefinition", - "aps:CreateLoggingConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "kms:CreateGrant", - "kms:Decrypt", - "kms:GenerateDataKey" - ] - }, - "delete": { - "permissions": [ - "aps:DeleteWorkspace", - "aps:DescribeWorkspace", - "aps:DeleteAlertManagerDefinition", - "aps:DeleteLoggingConfiguration", - "logs:DeleteLogDelivery" - ] - }, - "list": { - "permissions": [ - "aps:ListWorkspaces", - "aps:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "aps:DescribeWorkspace", - "aps:ListTagsForResource", - "aps:DescribeAlertManagerDefinition", - "aps:DescribeLoggingConfiguration" - ] - }, - "update": { - "permissions": [ - "aps:UpdateWorkspaceAlias", - "aps:DescribeWorkspace", - "aps:TagResource", - "aps:UntagResource", - "aps:ListTagsForResource", - "aps:CreateAlertManagerDefinition", - "aps:PutAlertManagerDefinition", - "aps:DeleteAlertManagerDefinition", - "aps:CreateLoggingConfiguration", - "aps:DescribeLoggingConfiguration", - "aps:UpdateLoggingConfiguration", - "aps:DeleteLoggingConfiguration", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:ListLogDeliveries", - "logs:DeleteLogDelivery", - "logs:PutResourcePolicy" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "AlertManagerDefinition": { - "description": "The AMP Workspace alert manager definition data", - "type": "string" - }, - "Alias": { - "description": "AMP Workspace alias.", - "maxLength": 100, - "minLength": 0, - "type": "string" - }, - "Arn": { - "description": "Workspace arn.", - "maxLength": 128, - "minLength": 1, - "pattern": "^arn:(aws|aws-us-gov|aws-cn):aps:[a-z0-9-]+:[0-9]+:workspace/[a-zA-Z0-9-]+$", - "type": "string" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "PrometheusEndpoint": { - "description": "AMP Workspace prometheus endpoint", - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "WorkspaceId": { - "description": "Required to identify a specific APS Workspace.", - "maxLength": 100, - "minLength": 1, - "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{1,99}$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/WorkspaceId", - "/properties/Arn", - "/properties/PrometheusEndpoint" - ], - "required": [], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::APS::Workspace" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-capacityreservationfleet.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-capacityreservationfleet.json new file mode 100644 index 0000000000..6b29f2e51d --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-capacityreservationfleet.json @@ -0,0 +1,190 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceTypeSpecifications", + "/properties/AllocationStrategy", + "/properties/TagSpecifications", + "/properties/EndDate", + "/properties/Tenancy", + "/properties/InstanceMatchCriteria" + ], + "definitions": { + "InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "maximum": 999, + "minimum": 0, + "type": "integer" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::CapacityReservationFleet", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeCapacityReservationFleets", + "ec2:DescribeInstances", + "ec2:DescribeCapacityReservations" + ] + }, + "update": { + "permissions": [ + "ec2:CreateCapacityReservationFleet", + "ec2:ModifyCapacityReservationFleet", + "ec2:DescribeCapacityReservationFleets", + "ec2:CancelCapacityReservationFleets", + "ec2:CreateCapacityReservation", + "ec2:ModifyCapacityReservation", + "ec2:DescribeCapacityReservations", + "ec2:CancelCapacityReservation", + "ec2:DescribeInstances", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/CapacityReservationFleetId" + ], + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationFleetId": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "enum": [ + "open" + ], + "type": "string" + }, + "InstanceTypeSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/InstanceTypeSpecification" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TagSpecification" + }, + "type": "array", + "uniqueItems": false + }, + "Tenancy": { + "enum": [ + "default" + ], + "type": "string" + }, + "TotalTargetCapacity": { + "maximum": 25000, + "minimum": 1, + "type": "integer" + } + }, + "readOnlyProperties": [ + "/properties/CapacityReservationFleetId" + ], + "taggable": true, + "typeName": "AWS::EC2::CapacityReservationFleet" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-image.json deleted file mode 100644 index 223d64e03e..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-image.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/Workflows", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 3cf9b2a4a9..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,277 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowConfiguration": { - "additionalProperties": false, - "description": "The workflow configuration of the image", - "properties": { - "OnFailure": { - "description": "Define execution decision in case of workflow failure", - "enum": [ - "CONTINUE", - "ABORT" - ], - "type": "string" - }, - "ParallelGroup": { - "description": "The parallel group name", - "type": "string" - }, - "Parameters": { - "description": "The parameters associated with the workflow", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/WorkflowParameter" - }, - "type": "array" - }, - "WorkflowArn": { - "description": "The Amazon Resource Name (ARN) of the workflow", - "type": "string" - } - }, - "type": "object" - }, - "WorkflowParameter": { - "additionalProperties": false, - "description": "A parameter associated with the workflow", - "properties": { - "Name": { - "type": "string" - }, - "Value": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowParameterValue" - }, - "type": "array" - } - }, - "type": "object" - }, - "WorkflowParameterValue": { - "description": "The value associated with the workflow parameter", - "type": "string" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ExecutionRole": { - "description": "The execution role name/ARN for the image build, if provided", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Workflows": { - "description": "Workflows to define the image build process", - "insertionOrder": true, - "items": { - "$ref": "#/definitions/WorkflowConfiguration" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-workflow.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-workflow.json deleted file mode 100644 index 5c25c2361b..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-imagebuilder-workflow.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Version", - "/properties/ChangeDescription", - "/properties/Description", - "/properties/Data", - "/properties/Uri", - "/properties/Type", - "/properties/KmsKeyId", - "/properties/Tags" - ], - "description": "Resource schema for AWS::ImageBuilder::Workflow", - "handlers": { - "create": { - "permissions": [ - "iam:GetRole", - "kms:GenerateDataKey*", - "kms:Encrypt", - "kms:Decrypt", - "s3:GetObject", - "s3:HeadBucket", - "s3:GetBucketLocation", - "imagebuilder:TagResource", - "imagebuilder:GetWorkflow", - "imagebuilder:CreateWorkflow" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:GetWorkflow", - "imagebuilder:UnTagResource", - "imagebuilder:DeleteWorkflow" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListWorkflows" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Data" - ] - }, - { - "required": [ - "Uri" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the workflow.", - "type": "string" - }, - "ChangeDescription": { - "description": "The change description of the workflow.", - "type": "string" - }, - "Data": { - "description": "The data of the workflow.", - "maxLength": 16000, - "minLength": 1, - "type": "string" - }, - "Description": { - "description": "The description of the workflow.", - "type": "string" - }, - "KmsKeyId": { - "description": "The KMS key identifier used to encrypt the workflow.", - "type": "string" - }, - "Name": { - "description": "The name of the workflow.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the workflow.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "description": "The type of the workflow denotes whether the workflow is used to build, test, or distribute.", - "enum": [ - "BUILD", - "TEST", - "DISTRIBUTION" - ], - "type": "string" - }, - "Uri": { - "description": "The uri of the workflow.", - "type": "string" - }, - "Version": { - "description": "The version of the workflow.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "Name", - "Type", - "Version" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Workflow", - "writeOnlyProperties": [ - "/properties/Data", - "/properties/Uri" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-iotsitewise-gateway.json new file mode 100644 index 0000000000..2c70369407 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-iotsitewise-gateway.json @@ -0,0 +1,189 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GatewayPlatform" + ], + "definitions": { + "CapabilityConfiguration": { + "description": "The JSON document that defines the gateway capability's configuration.", + "type": "string" + }, + "CapabilityNamespace": { + "description": "The namespace of the capability configuration.", + "type": "string" + }, + "GatewayCapabilitySummary": { + "additionalProperties": false, + "description": "Contains a summary of a gateway capability configuration.", + "properties": { + "CapabilityConfiguration": { + "$ref": "#/definitions/CapabilityConfiguration" + }, + "CapabilityNamespace": { + "$ref": "#/definitions/CapabilityNamespace" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "GatewayPlatform": { + "additionalProperties": false, + "description": "Contains a gateway's platform information.", + "oneOf": [ + { + "required": [ + "Greengrass" + ] + }, + { + "required": [ + "GreengrassV2" + ] + } + ], + "properties": { + "Greengrass": { + "$ref": "#/definitions/Greengrass", + "description": "A gateway that runs on AWS IoT Greengrass V1." + }, + "GreengrassV2": { + "$ref": "#/definitions/GreengrassV2", + "description": "A gateway that runs on AWS IoT Greengrass V2." + } + }, + "type": "object" + }, + "Greengrass": { + "additionalProperties": false, + "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", + "properties": { + "GroupArn": { + "description": "The ARN of the Greengrass group.", + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "GreengrassV2": { + "additionalProperties": false, + "description": "Contains the CoreDeviceThingName of AWS IoT Greengrass Group V2 that the gateway runs on.", + "properties": { + "CoreDeviceThingName": { + "description": "The name of the CoreDevice in GreenGrass V2.", + "type": "string" + } + }, + "required": [ + "CoreDeviceThingName" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Gateway", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iam:PassRole", + "iam:GetRole", + "greengrass:GetCoreDevice", + "iot:DescribeThing" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteGateway" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListGateways" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iotsitewise:UpdateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:DescribeGateway", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/GatewayId" + ], + "properties": { + "GatewayCapabilitySummaries": { + "description": "A list of gateway capability summaries that each contain a namespace and status.", + "insertionOrder": true, + "items": { + "$ref": "#/definitions/GatewayCapabilitySummary" + }, + "type": "array", + "uniqueItems": true + }, + "GatewayId": { + "description": "The ID of the gateway device.", + "type": "string" + }, + "GatewayName": { + "description": "A unique, friendly name for the gateway.", + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/GatewayPlatform", + "description": "The gateway's platform. You can only specify one platform in a gateway." + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the gateway.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/GatewayId" + ], + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Gateway" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-iotsitewise-portal.json new file mode 100644 index 0000000000..1f96697cad --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-iotsitewise-portal.json @@ -0,0 +1,155 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/PortalArn" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalAuthMode" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted.", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Portal", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreatePortal", + "iotsitewise:TagResource", + "iam:PassRole", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeletePortal", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListPortals" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribePortal" + ] + }, + "update": { + "permissions": [ + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", + "iotsitewise:UpdatePortal", + "iotsitewise:UntagResource", + "iam:PassRole", + "sso:GetManagedApplicationInstance", + "sso:UpdateApplicationInstanceDisplayData" + ] + } + }, + "primaryIdentifier": [ + "/properties/PortalId" + ], + "properties": { + "Alarms": { + "additionalProperties": false, + "description": "Contains the configuration information of an alarm created in an AWS IoT SiteWise Monitor portal. You can use the alarm to monitor an asset property and get notified when the asset property value is outside a specified range.", + "properties": { + "AlarmRoleArn": { + "description": "The ARN of the IAM role that allows the alarm to perform actions and access AWS resources and services, such as AWS IoT Events.", + "type": "string" + }, + "NotificationLambdaArn": { + "description": "The ARN of the AWS Lambda function that manages alarm notifications. For more information, see Managing alarm notifications in the AWS IoT Events Developer Guide.", + "type": "string" + } + }, + "type": "object" + }, + "NotificationSenderEmail": { + "description": "The email address that sends alarm notifications.", + "type": "string" + }, + "PortalArn": { + "description": "The ARN of the portal, which has the following format.", + "type": "string" + }, + "PortalAuthMode": { + "description": "The service to use to authenticate users to the portal. Choose from SSO or IAM. You can't change this value after you create a portal.", + "type": "string" + }, + "PortalClientId": { + "description": "The AWS SSO application generated client ID (used with AWS SSO APIs).", + "type": "string" + }, + "PortalContactEmail": { + "description": "The AWS administrator's contact email address.", + "type": "string" + }, + "PortalDescription": { + "description": "A description for the portal.", + "type": "string" + }, + "PortalId": { + "description": "The ID of the portal.", + "type": "string" + }, + "PortalName": { + "description": "A friendly name for the portal.", + "type": "string" + }, + "PortalStartUrl": { + "description": "The public root URL for the AWS IoT AWS IoT SiteWise Monitor application portal.", + "type": "string" + }, + "RoleArn": { + "description": "The ARN of a service role that allows the portal's users to access your AWS IoT SiteWise resources on your behalf.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the portal.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/PortalArn", + "/properties/PortalClientId", + "/properties/PortalId", + "/properties/PortalStartUrl" + ], + "required": [ + "PortalContactEmail", + "PortalName", + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iotsitewise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Portal", + "writeOnlyProperties": [ + "/properties/Tags" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-iotsitewise-project.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-iotsitewise-project.json new file mode 100644 index 0000000000..0e457b1491 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-iotsitewise-project.json @@ -0,0 +1,120 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PortalId" + ], + "definitions": { + "AssetId": { + "description": "The ID of the asset", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "description": "Resource schema for AWS::IoTSiteWise::Project", + "handlers": { + "create": { + "permissions": [ + "iotsitewise:CreateProject", + "iotsitewise:BatchAssociateProjectAssets" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DeleteProject" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListProjects" + ] + }, + "read": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:ListTagsForResource", + "iotsitewise:ListProjectAssets" + ] + }, + "update": { + "permissions": [ + "iotsitewise:DescribeProject", + "iotsitewise:UpdateProject", + "iotsitewise:BatchAssociateProjectAssets", + "iotsitewise:BatchDisAssociateProjectAssets", + "iotsitewise:ListProjectAssets", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/ProjectId" + ], + "properties": { + "AssetIds": { + "description": "The IDs of the assets to be associated to the project.", + "items": { + "$ref": "#/definitions/AssetId" + }, + "type": "array", + "uniqueItems": true + }, + "PortalId": { + "description": "The ID of the portal in which to create the project.", + "type": "string" + }, + "ProjectArn": { + "description": "The ARN of the project.", + "type": "string" + }, + "ProjectDescription": { + "description": "A description for the project.", + "type": "string" + }, + "ProjectId": { + "description": "The ID of the project.", + "type": "string" + }, + "ProjectName": { + "description": "A friendly name for the project.", + "type": "string" + }, + "Tags": { + "description": "A list of key-value pairs that contain metadata for the project.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + } + }, + "readOnlyProperties": [ + "/properties/ProjectId", + "/properties/ProjectArn" + ], + "required": [ + "PortalId", + "ProjectName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "taggable": true, + "typeName": "AWS::IoTSiteWise::Project" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-neptunegraph-graph.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-neptunegraph-graph.json new file mode 100644 index 0000000000..718d9e8197 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-neptunegraph-graph.json @@ -0,0 +1,190 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/GraphName" + ] + ], + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/ProvisionedMemory" + ], + "createOnlyProperties": [ + "/properties/GraphName", + "/properties/ReplicaCount", + "/properties/VectorSearchConfiguration" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", + "properties": { + "Key": { + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "VectorSearchConfiguration": { + "additionalProperties": false, + "description": "The vector search configuration.", + "properties": { + "VectorSearchDimension": { + "description": "The vector search dimension", + "type": "integer" + } + }, + "required": [ + "VectorSearchDimension" + ], + "type": "object" + } + }, + "description": "The AWS::NeptuneGraph::Graph resource creates an Amazon NeptuneGraph Graph.", + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "neptune-graph:CreateGraph", + "neptune-graph:GetGraph", + "neptune-graph:ListTagsForResource", + "neptune-graph:TagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "neptune-graph:DeleteGraph", + "neptune-graph:GetGraph", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "neptune-graph:GetGraph", + "neptune-graph:ListGraphs", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "neptune-graph:GetGraph", + "neptune-graph:ListTagsForResource", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "iam:PassRole", + "neptune-graph:GetGraph", + "neptune-graph:ListTagsForResource", + "neptune-graph:TagResource", + "neptune-graph:UntagResource", + "neptune-graph:UpdateGraph", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:Decrypt" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/GraphId" + ], + "properties": { + "DeletionProtection": { + "description": "Value that indicates whether the Graph has deletion protection enabled. The graph can't be deleted when deletion protection is enabled.\n\n_Default_: If not specified, the default value is true.", + "type": "boolean" + }, + "Endpoint": { + "description": "The connection endpoint for the graph. For example: `g-12a3bcdef4.us-east-1.neptune-graph.amazonaws.com`", + "type": "string" + }, + "GraphArn": { + "description": "Graph resource ARN", + "type": "string" + }, + "GraphId": { + "description": "The auto-generated id assigned by the service.", + "type": "string" + }, + "GraphName": { + "description": "Contains a user-supplied name for the Graph. \n\nIf you don't specify a name, we generate a unique Graph Name using a combination of Stack Name and a UUID comprising of 4 characters.\n\n_Important_: If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*$", + "type": "string" + }, + "ProvisionedMemory": { + "description": "Memory for the Graph.", + "type": "integer" + }, + "PublicConnectivity": { + "description": "Specifies whether the Graph can be reached over the internet. Access to all graphs requires IAM authentication.\n\nWhen the Graph is publicly reachable, its Domain Name System (DNS) endpoint resolves to the public IP address from the internet.\n\nWhen the Graph isn't publicly reachable, you need to create a PrivateGraphEndpoint in a given VPC to ensure the DNS name resolves to a private IP address that is reachable from the VPC.\n\n_Default_: If not specified, the default value is false.", + "type": "boolean" + }, + "ReplicaCount": { + "description": "Specifies the number of replicas you want when finished. All replicas will be provisioned in different availability zones.\n\nReplica Count should always be less than or equal to 2.\n\n_Default_: If not specified, the default value is 1.", + "type": "integer" + }, + "Tags": { + "description": "The tags associated with this graph.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "VectorSearchConfiguration": { + "$ref": "#/definitions/VectorSearchConfiguration", + "description": "Vector Search Configuration" + } + }, + "propertyTransform": { + "/properties/GraphId": "$lowercase(GraphId)", + "/properties/GraphName": "$lowercase(GraphName)" + }, + "readOnlyProperties": [ + "/properties/GraphArn", + "/properties/GraphId", + "/properties/Endpoint" + ], + "required": [ + "ProvisionedMemory" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptunegraph", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::NeptuneGraph::Graph" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-neptunegraph-privategraphendpoint.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-neptunegraph-privategraphendpoint.json new file mode 100644 index 0000000000..91cfae40a4 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-neptunegraph-privategraphendpoint.json @@ -0,0 +1,132 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/GraphIdentifier", + "/properties/VpcId" + ] + ], + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/GraphIdentifier", + "/properties/SecurityGroupIds", + "/properties/SubnetIds", + "/properties/VpcId" + ], + "description": "The AWS::NeptuneGraph::PrivateGraphEndpoint resource creates an Amazon NeptuneGraph PrivateGraphEndpoint.", + "handlers": { + "create": { + "permissions": [ + "ec2:CreateVpcEndpoint", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:DescribeVpcAttribute", + "ec2:DescribeAvailabilityZones", + "ec2:ModifyVpcEndpoint", + "route53:AssociateVPCWithHostedZone", + "iam:PassRole", + "neptune-graph:CreatePrivateGraphEndpoint", + "neptune-graph:GetPrivateGraphEndpoint", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "ec2:DeleteVpcEndpoints", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:DescribeVpcAttribute", + "ec2:DescribeAvailabilityZones", + "ec2:ModifyVpcEndpoint", + "route53:DisassociateVPCFromHostedZone", + "neptune-graph:DeletePrivateGraphEndpoint", + "neptune-graph:GetPrivateGraphEndpoint" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "neptune-graph:GetPrivateGraphEndpoint", + "neptune-graph:ListPrivateGraphEndpoints" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "neptune-graph:GetPrivateGraphEndpoint" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "iam:PassRole", + "neptune-graph:GetPrivateGraphEndpoint" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/PrivateGraphEndpointIdentifier" + ], + "properties": { + "GraphIdentifier": { + "description": "The auto-generated Graph Id assigned by the service.", + "type": "string" + }, + "PrivateGraphEndpointIdentifier": { + "description": "PrivateGraphEndpoint resource identifier generated by concatenating the associated GraphIdentifier and VpcId with an underscore separator.\n\n For example, if GraphIdentifier is `g-12a3bcdef4` and VpcId is `vpc-0a12bc34567de8f90`, the generated PrivateGraphEndpointIdentifier will be `g-12a3bcdef4_vpc-0a12bc34567de8f90`", + "type": "string" + }, + "SecurityGroupIds": { + "description": "The security group Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "description": "The subnet Ids associated with the VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.", + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcEndpointId": { + "description": "VPC endpoint that provides a private connection between the Graph and specified VPC.", + "type": "string" + }, + "VpcId": { + "description": "The VPC where you want the private graph endpoint to be created, ie, the graph will be reachable from within the VPC.", + "type": "string" + } + }, + "propertyTransform": { + "/properties/GraphIdentifier": "$lowercase(GraphIdentifier)" + }, + "readOnlyProperties": [ + "/properties/PrivateGraphEndpointIdentifier", + "/properties/VpcEndpointId" + ], + "required": [ + "GraphIdentifier", + "VpcId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptunegraph", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::NeptuneGraph::PrivateGraphEndpoint", + "writeOnlyProperties": [ + "/properties/GraphIdentifier", + "/properties/SecurityGroupIds" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-networkfirewall-firewallpolicy.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-networkfirewall-firewallpolicy.json new file mode 100644 index 0000000000..663e175b39 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-networkfirewall-firewallpolicy.json @@ -0,0 +1,364 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FirewallPolicyName" + ], + "definitions": { + "ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/PublishMetricAction" + } + }, + "type": "object" + }, + "CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/ActionDefinition" + }, + "ActionName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + } + }, + "required": [ + "ActionName", + "ActionDefinition" + ], + "type": "object" + }, + "Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-_ ]+$", + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "FirewallPolicy": { + "additionalProperties": false, + "properties": { + "PolicyVariables": { + "additionalProperties": false, + "properties": { + "RuleVariables": { + "$ref": "#/definitions/RuleVariables" + } + }, + "type": "object" + }, + "StatefulDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatefulRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessCustomActions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/CustomAction" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessFragmentDefaultActions": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "StatelessRuleGroupReferences": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/StatelessRuleGroupReference" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/VariableDefinition" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, + "OverrideAction": { + "enum": [ + "DROP_TO_ALERT" + ], + "type": "string" + }, + "Priority": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "ResourceArn": { + "description": "A resource ARN.", + "maxLength": 256, + "minLength": 1, + "pattern": "^(arn:aws.*)$", + "type": "string" + }, + "RuleOrder": { + "enum": [ + "DEFAULT_ACTION_ORDER", + "STRICT_ORDER" + ], + "type": "string" + }, + "RuleVariables": { + "additionalProperties": false, + "patternProperties": { + "^[A-Za-z0-9_]{1,32}$": { + "$ref": "#/definitions/IPSet" + } + }, + "type": "object" + }, + "StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "$ref": "#/definitions/RuleOrder" + }, + "StreamExceptionPolicy": { + "$ref": "#/definitions/StreamExceptionPolicy" + } + }, + "type": "object" + }, + "StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/OverrideAction" + } + }, + "type": "object" + }, + "StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/StatefulRuleGroupOverride" + }, + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "$ref": "#/definitions/Priority" + }, + "ResourceArn": { + "$ref": "#/definitions/ResourceArn" + } + }, + "required": [ + "ResourceArn", + "Priority" + ], + "type": "object" + }, + "StreamExceptionPolicy": { + "enum": [ + "DROP", + "CONTINUE", + "REJECT" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "VariableDefinition": { + "minLength": 1, + "pattern": "^.*$", + "type": "string" + } + }, + "description": "Resource type definition for AWS::NetworkFirewall::FirewallPolicy", + "handlers": { + "create": { + "permissions": [ + "network-firewall:CreateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:ListRuleGroups" + ] + }, + "delete": { + "permissions": [ + "network-firewall:DeleteFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:UntagResource" + ] + }, + "list": { + "permissions": [ + "network-firewall:ListFirewallPolicies" + ] + }, + "read": { + "permissions": [ + "network-firewall:DescribeFirewallPolicy", + "network-firewall:ListTagsForResources" + ] + }, + "update": { + "permissions": [ + "network-firewall:UpdateFirewallPolicy", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:TagResource", + "network-firewall:UntagResource", + "network-firewall:ListRuleGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/FirewallPolicyArn" + ], + "properties": { + "Description": { + "maxLength": 512, + "minLength": 1, + "pattern": "^.*$", + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/FirewallPolicy" + }, + "FirewallPolicyArn": { + "$ref": "#/definitions/ResourceArn" + }, + "FirewallPolicyId": { + "maxLength": 36, + "minLength": 36, + "pattern": "^([0-9a-f]{8})-([0-9a-f]{4}-){3}([0-9a-f]{12})$", + "type": "string" + }, + "FirewallPolicyName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/FirewallPolicyArn", + "/properties/FirewallPolicyId" + ], + "required": [ + "FirewallPolicyName", + "FirewallPolicy" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkfirewall.git", + "tagging": { + "taggable": true + }, + "typeName": "AWS::NetworkFirewall::FirewallPolicy" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-servicecatalogappregistry-application.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-servicecatalogappregistry-application.json deleted file mode 100644 index b04a7d7289..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-servicecatalogappregistry-application.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/Name" - ] - ], - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "maxProperties": 50, - "patternProperties": { - "^[a-zA-Z+-=._:/]+$": { - "maxLength": 256, - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Schema for AWS::ServiceCatalogAppRegistry::Application", - "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-appregistry-application.html", - "handlers": { - "create": { - "permissions": [ - "servicecatalog:CreateApplication", - "servicecatalog:TagResource", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "servicecatalog:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "servicecatalog:ListApplications" - ] - }, - "read": { - "permissions": [ - "servicecatalog:GetApplication" - ] - }, - "update": { - "permissions": [ - "servicecatalog:GetApplication", - "servicecatalog:ListTagsForResource", - "servicecatalog:TagResource", - "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "pattern": "arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+", - "type": "string" - }, - "Description": { - "description": "The description of the application. ", - "maxLength": 1024, - "type": "string" - }, - "Id": { - "pattern": "[a-z0-9]{26}", - "type": "string" - }, - "Name": { - "description": "The name of the application. ", - "maxLength": 256, - "minLength": 1, - "pattern": "\\w+", - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/Tags" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-servicecatalog-appregistry.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ServiceCatalogAppRegistry::Application" -} 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 e0fc4625ef..68243fc0fd 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 @@ -62,6 +62,7 @@ "AWS::EC2::TransitGatewayRouteTable", "AWS::S3::AccessGrantsInstance", "AWS::Route53::RecordSet", + "AWS::EKS::AccessEntry", "AWS::ElastiCache::SecurityGroup", "AWS::OpsWorks::Layer", "AWS::CloudTrail::EventDataStore", @@ -256,6 +257,7 @@ "AWS::CloudFormation::HookDefaultVersion", "AWS::Config::ConfigRule", "AWS::EC2::ClientVpnRoute", + "AWS::ImageBuilder::Workflow", "AWS::ECS::TaskSet", "AWS::ACMPCA::CertificateAuthorityActivation", "AWS::GuardDuty::ThreatIntelSet", @@ -285,12 +287,14 @@ "AWS::Neptune::DBCluster", "AWS::Backup::BackupVault", "AWS::EC2::CustomerGateway", + "AWS::IAM::GroupPolicy", "AWS::WAF::ByteMatchSet", "AWS::Neptune::DBClusterParameterGroup", "AWS::EC2::Host", "AWS::DMS::ReplicationTask", "AWS::EC2::RouteTable", "AWS::DataSync::LocationSMB", + "AWS::ResilienceHub::App", "AWS::SecurityHub::Standard", "AWS::Redshift::ClusterParameterGroup", "AWS::Organizations::Policy", @@ -397,6 +401,7 @@ "AWS::EC2::SubnetNetworkAclAssociation", "AWS::ServiceCatalog::ServiceAction", "AWS::AppStream::Entitlement", + "AWS::IAM::UserPolicy", "AWS::IoT::MitigationAction", "AWS::SecretsManager::RotationSchedule", "AWS::Lambda::Permission", @@ -420,6 +425,7 @@ "AWS::RDS::EventSubscription", "AWS::Config::AggregationAuthorization", "AWS::DataSync::Agent", + "AWS::ResilienceHub::ResiliencyPolicy", "AWS::IoT::Dimension", "AWS::Logs::LogGroup", "AWS::ECS::Cluster", @@ -442,10 +448,12 @@ "AWS::EC2::CapacityReservation", "AWS::ElasticLoadBalancing::LoadBalancer", "AWS::Transfer::User", + "AWS::IAM::RolePolicy", "AWS::EC2::TrafficMirrorTarget", "AWS::StepFunctions::StateMachine", "AWS::RDS::DBClusterParameterGroup", "AWS::WAF::XssMatchSet", + "AWS::IoT::CertificateProvider", "AWS::AppStream::DirectoryConfig", "AWS::Inspector::AssessmentTarget", "AWS::FSx::Snapshot", @@ -619,6 +627,7 @@ "aws-wafv2-regexpatternset.json", "aws-s3-accessgrantsinstance.json", "aws-route53-recordset.json", + "aws-eks-accessentry.json", "aws-elasticache-securitygroup.json", "aws-opsworks-layer.json", "aws-cloudtrail-eventdatastore.json", @@ -633,6 +642,7 @@ "aws-appstream-appblockbuilder.json", "aws-opsworks-instance.json", "aws-config-configurationaggregator.json", + "aws-imagebuilder-imagepipeline.json", "aws-elasticloadbalancingv2-listenercertificate.json", "aws-cloudformation-moduleversion.json", "aws-fsx-storagevirtualmachine.json", @@ -658,7 +668,9 @@ "aws-servicecatalog-cloudformationprovisionedproduct.json", "aws-glue-table.json", "aws-logs-metricfilter.json", + "aws-lambda-function.json", "aws-datasync-locationfsxlustre.json", + "aws-sagemaker-app.json", "aws-cloudtrail-trail.json", "aws-ec2-gatewayroutetableassociation.json", "aws-wafv2-ipset.json", @@ -674,6 +686,7 @@ "aws-waf-sizeconstraintset.json", "aws-ec2-transitgatewayroutetableassociation.json", "aws-appconfig-environment.json", + "aws-imagebuilder-image.json", "aws-elasticache-securitygroupingress.json", "aws-cloudwatch-dashboard.json", "aws-cloudwatch-alarm.json", @@ -684,6 +697,7 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-elasticache-parametergroup.json", "aws-glue-classifier.json", + "aws-codedeploy-deploymentgroup.json", "aws-cloudformation-stackset.json", "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", @@ -691,7 +705,6 @@ "aws-iot-resourcespecificlogging.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-wafv2-loggingconfiguration.json", - "aws-dynamodb-globaltable.json", "aws-imagebuilder-distributionconfiguration.json", "aws-identitystore-group.json", "aws-ram-permission.json", @@ -737,6 +750,7 @@ "aws-appstream-application.json", "aws-datasync-locationnfs.json", "aws-kinesisanalyticsv2-applicationoutput.json", + "aws-sagemaker-domain.json", "aws-greengrass-coredefinitionversion.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", @@ -748,6 +762,7 @@ "aws-redshift-clustersecuritygroupingress.json", "aws-servicecatalogappregistry-attributegroupassociation.json", "aws-elasticloadbalancingv2-loadbalancer.json", + "aws-opensearchservice-domain.json", "aws-servicediscovery-instance.json", "aws-elasticsearch-domain.json", "aws-servicecatalog-stacksetconstraint.json", @@ -758,6 +773,7 @@ "aws-iot-rolealias.json", "aws-secretsmanager-resourcepolicy.json", "aws-ec2-clientvpnroute.json", + "aws-imagebuilder-workflow.json", "aws-acmpca-certificateauthorityactivation.json", "aws-msk-vpcconnection.json", "aws-datasync-locationazureblob.json", @@ -769,16 +785,18 @@ "aws-ec2-localgatewayroute.json", "aws-opsworks-app.json", "aws-kinesis-stream.json", - "aws-batch-jobdefinition.json", "aws-iam-samlprovider.json", "aws-codedeploy-deploymentconfig.json", "aws-networkmanager-globalnetwork.json", "aws-stepfunctions-statemachineversion.json", + "aws-servicecatalogappregistry-application.json", "aws-glue-database.json", "aws-neptune-dbcluster.json", + "aws-iam-grouppolicy.json", "aws-waf-bytematchset.json", "aws-dms-replicationtask.json", "aws-datasync-locationsmb.json", + "aws-resiliencehub-app.json", "aws-securityhub-standard.json", "aws-redshift-clusterparametergroup.json", "aws-organizations-policy.json", @@ -790,7 +808,6 @@ "aws-route53resolver-firewallrulegroupassociation.json", "aws-route53resolver-resolverqueryloggingconfig.json", "aws-ec2-snapshotblockpublicaccess.json", - "aws-ec2-subnet.json", "aws-s3objectlambda-accesspoint.json", "aws-waf-rule.json", "aws-sqs-queuepolicy.json", @@ -812,6 +829,7 @@ "aws-redshift-cluster.json", "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", + "aws-emr-cluster.json", "aws-codepipeline-webhook.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", @@ -835,6 +853,7 @@ "aws-logs-subscriptionfilter.json", "aws-codedeploy-application.json", "aws-dms-eventsubscription.json", + "aws-iot-topicrule.json", "aws-datasync-locations3.json", "aws-fsx-datarepositoryassociation.json", "aws-route53resolver-resolverqueryloggingconfigassociation.json", @@ -857,10 +876,10 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-servicecatalog-serviceaction.json", "aws-appstream-entitlement.json", + "aws-iam-userpolicy.json", "aws-iot-mitigationaction.json", "aws-secretsmanager-rotationschedule.json", "aws-lambda-permission.json", - "aws-networkfirewall-firewallpolicy.json", "aws-eks-identityproviderconfig.json", "aws-ec2-ipamresourcediscoveryassociation.json", "aws-servicecatalogappregistry-attributegroup.json", @@ -874,6 +893,7 @@ "aws-ec2-ipamscope.json", "aws-rds-eventsubscription.json", "aws-datasync-agent.json", + "aws-resiliencehub-resiliencypolicy.json", "aws-iot-dimension.json", "aws-logs-loggroup.json", "aws-ec2-trafficmirrorfilterrule.json", @@ -889,10 +909,12 @@ "aws-ec2-capacityreservation.json", "aws-elasticloadbalancing-loadbalancer.json", "aws-transfer-user.json", + "aws-iam-rolepolicy.json", "aws-ec2-trafficmirrortarget.json", "aws-stepfunctions-statemachine.json", "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", + "aws-iot-certificateprovider.json", "aws-appstream-directoryconfig.json", "aws-fsx-snapshot.json", "aws-config-remediationconfiguration.json", @@ -972,6 +994,7 @@ "aws-cloudformation-resourceversion.json", "aws-apigatewayv2-stage.json", "aws-rds-dbparametergroup.json", + "aws-securityhub-hub.json", "aws-s3-accesspoint.json", "aws-greengrass-groupversion.json", "aws-ec2-trafficmirrorsession.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-batch-jobdefinition.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-batch-jobdefinition.json similarity index 66% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-batch-jobdefinition.json rename to src/cfnlint/data/schemas/providers/us_gov_east_1/aws-batch-jobdefinition.json index 084f241db1..dd6d053f74 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-batch-jobdefinition.json +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-batch-jobdefinition.json @@ -1,24 +1,26 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/JobDefinitionName", - "/properties/ContainerProperties", - "/properties/EksProperties", - "/properties/NodeProperties", - "/properties/Parameters", - "/properties/PlatformCapabilities", - "/properties/PropagateTags", - "/properties/RetryStrategy", - "/properties/SchedulingPriority", - "/properties/Timeout", - "/properties/Type" + "/properties/Tags", + "/properties/JobDefinitionName" ], "definitions": { + "AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, "ContainerProperties": { "additionalProperties": false, "properties": { "Command": { - "insertionOrder": true, "items": { "type": "string" }, @@ -26,7 +28,6 @@ "uniqueItems": false }, "Environment": { - "insertionOrder": true, "items": { "$ref": "#/definitions/Environment" }, @@ -34,28 +35,13 @@ "uniqueItems": false }, "EphemeralStorage": { - "additionalProperties": false, - "properties": { - "SizeInGiB": { - "type": "integer" - } - }, - "required": [ - "SizeInGiB" - ], - "type": "object" + "$ref": "#/definitions/EphemeralStorage" }, "ExecutionRoleArn": { "type": "string" }, "FargatePlatformConfiguration": { - "additionalProperties": false, - "properties": { - "PlatformVersion": { - "type": "string" - } - }, - "type": "object" + "$ref": "#/definitions/FargatePlatformConfiguration" }, "Image": { "type": "string" @@ -67,87 +53,23 @@ "type": "string" }, "LinuxParameters": { - "additionalProperties": false, - "properties": { - "Devices": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Device" - }, - "type": "array", - "uniqueItems": false - }, - "InitProcessEnabled": { - "type": "boolean" - }, - "MaxSwap": { - "type": "integer" - }, - "SharedMemorySize": { - "type": "integer" - }, - "Swappiness": { - "type": "integer" - }, - "Tmpfs": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tmpfs" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" + "$ref": "#/definitions/LinuxParameters" }, "LogConfiguration": { - "additionalProperties": false, - "properties": { - "LogDriver": { - "type": "string" - }, - "Options": { - "additionalProperties": false, - "patternProperties": { - ".*": { - "type": "string" - } - }, - "type": "object" - }, - "SecretOptions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Secret" - }, - "type": "array", - "uniqueItems": false - } - }, - "required": [ - "LogDriver" - ], - "type": "object" + "$ref": "#/definitions/LogConfiguration" }, "Memory": { "type": "integer" }, "MountPoints": { - "insertionOrder": false, "items": { - "$ref": "#/definitions/MountPoint" + "$ref": "#/definitions/MountPoints" }, "type": "array", "uniqueItems": false }, "NetworkConfiguration": { - "additionalProperties": false, - "properties": { - "AssignPublicIp": { - "type": "string" - } - }, - "type": "object" + "$ref": "#/definitions/NetworkConfiguration" }, "Privileged": { "type": "boolean" @@ -156,7 +78,6 @@ "type": "boolean" }, "ResourceRequirements": { - "insertionOrder": false, "items": { "$ref": "#/definitions/ResourceRequirement" }, @@ -164,19 +85,9 @@ "uniqueItems": false }, "RuntimePlatform": { - "additionalProperties": false, - "properties": { - "CpuArchitecture": { - "type": "string" - }, - "OperatingSystemFamily": { - "type": "string" - } - }, - "type": "object" + "$ref": "#/definitions/RuntimePlatform" }, "Secrets": { - "insertionOrder": false, "items": { "$ref": "#/definitions/Secret" }, @@ -184,7 +95,6 @@ "uniqueItems": false }, "Ulimits": { - "insertionOrder": false, "items": { "$ref": "#/definitions/Ulimit" }, @@ -198,9 +108,8 @@ "type": "integer" }, "Volumes": { - "insertionOrder": false, "items": { - "$ref": "#/definitions/Volume" + "$ref": "#/definitions/Volumes" }, "type": "array", "uniqueItems": false @@ -221,7 +130,6 @@ "type": "string" }, "Permissions": { - "insertionOrder": false, "items": { "type": "string" }, @@ -231,23 +139,11 @@ }, "type": "object" }, - "EFSAuthorizationConfig": { - "additionalProperties": false, - "properties": { - "AccessPointId": { - "type": "string" - }, - "Iam": { - "type": "string" - } - }, - "type": "object" - }, - "EFSVolumeConfiguration": { + "EfsVolumeConfiguration": { "additionalProperties": false, "properties": { "AuthorizationConfig": { - "$ref": "#/definitions/EFSAuthorizationConfig" + "$ref": "#/definitions/AuthorizationConfig" }, "FileSystemId": { "type": "string" @@ -271,7 +167,6 @@ "additionalProperties": false, "properties": { "Args": { - "insertionOrder": true, "items": { "type": "string" }, @@ -279,7 +174,6 @@ "uniqueItems": false }, "Command": { - "insertionOrder": true, "items": { "type": "string" }, @@ -287,7 +181,6 @@ "uniqueItems": false }, "Env": { - "insertionOrder": false, "items": { "$ref": "#/definitions/EksContainerEnvironmentVariable" }, @@ -310,7 +203,6 @@ "$ref": "#/definitions/EksContainerSecurityContext" }, "VolumeMounts": { - "insertionOrder": false, "items": { "$ref": "#/definitions/EksContainerVolumeMount" }, @@ -342,21 +234,9 @@ "additionalProperties": false, "properties": { "Limits": { - "additionalProperties": false, - "patternProperties": { - ".*": { - "type": "string" - } - }, "type": "object" }, "Requests": { - "additionalProperties": false, - "patternProperties": { - ".*": { - "type": "string" - } - }, "type": "object" } }, @@ -419,60 +299,11 @@ }, "type": "object" }, - "EksMetadata": { - "additionalProperties": false, - "properties": { - "Labels": { - "additionalProperties": false, - "patternProperties": { - ".*": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "EksPodProperties": { - "additionalProperties": false, - "properties": { - "Containers": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EksContainer" - }, - "type": "array", - "uniqueItems": false - }, - "DnsPolicy": { - "type": "string" - }, - "HostNetwork": { - "type": "boolean" - }, - "Metadata": { - "$ref": "#/definitions/EksMetadata" - }, - "ServiceAccountName": { - "type": "string" - }, - "Volumes": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EksVolume" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, "EksProperties": { "additionalProperties": false, "properties": { "PodProperties": { - "$ref": "#/definitions/EksPodProperties" + "$ref": "#/definitions/PodProperties" } }, "type": "object" @@ -525,6 +356,18 @@ }, "type": "object" }, + "EphemeralStorage": { + "additionalProperties": false, + "properties": { + "SizeInGiB": { + "type": "integer" + } + }, + "required": [ + "SizeInGiB" + ], + "type": "object" + }, "EvaluateOnExit": { "additionalProperties": false, "properties": { @@ -546,25 +389,79 @@ ], "type": "object" }, - "Host": { + "FargatePlatformConfiguration": { "additionalProperties": false, "properties": { - "SourcePath": { + "PlatformVersion": { "type": "string" } }, "type": "object" }, - "JobTimeout": { + "LinuxParameters": { "additionalProperties": false, "properties": { - "AttemptDurationSeconds": { + "Devices": { + "items": { + "$ref": "#/definitions/Device" + }, + "type": "array", + "uniqueItems": false + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + }, + "SharedMemorySize": { "type": "integer" + }, + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/Tmpfs" + }, + "type": "array", + "uniqueItems": false } }, "type": "object" }, - "MountPoint": { + "LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "type": "object" + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/Secret" + }, + "type": "array", + "uniqueItems": false + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "Metadata": { + "additionalProperties": false, + "properties": { + "Labels": { + "type": "object" + } + }, + "type": "object" + }, + "MountPoints": { "additionalProperties": false, "properties": { "ContainerPath": { @@ -579,6 +476,15 @@ }, "type": "object" }, + "NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + } + }, + "type": "object" + }, "NodeProperties": { "additionalProperties": false, "properties": { @@ -586,7 +492,6 @@ "type": "integer" }, "NodeRangeProperties": { - "insertionOrder": false, "items": { "$ref": "#/definitions/NodeRangeProperty" }, @@ -598,9 +503,9 @@ } }, "required": [ - "NumNodes", "MainNode", - "NodeRangeProperties" + "NodeRangeProperties", + "NumNodes" ], "type": "object" }, @@ -619,6 +524,38 @@ ], "type": "object" }, + "PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/EksContainer" + }, + "type": "array", + "uniqueItems": false + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/EksVolume" + }, + "type": "array", + "uniqueItems": false + } + }, + "type": "object" + }, "ResourceRequirement": { "additionalProperties": false, "properties": { @@ -638,7 +575,6 @@ "type": "integer" }, "EvaluateOnExit": { - "insertionOrder": false, "items": { "$ref": "#/definitions/EvaluateOnExit" }, @@ -648,6 +584,18 @@ }, "type": "object" }, + "RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, "Secret": { "additionalProperties": false, "properties": { @@ -659,11 +607,20 @@ } }, "required": [ - "Name", - "ValueFrom" + "ValueFrom", + "Name" ], "type": "object" }, + "Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + }, + "type": "object" + }, "Tmpfs": { "additionalProperties": false, "properties": { @@ -671,7 +628,6 @@ "type": "string" }, "MountOptions": { - "insertionOrder": false, "items": { "type": "string" }, @@ -683,8 +639,8 @@ } }, "required": [ - "ContainerPath", - "Size" + "Size", + "ContainerPath" ], "type": "object" }, @@ -702,98 +658,61 @@ } }, "required": [ + "SoftLimit", "HardLimit", - "Name", - "SoftLimit" + "Name" ], "type": "object" }, - "Volume": { + "Volumes": { "additionalProperties": false, "properties": { "EfsVolumeConfiguration": { - "$ref": "#/definitions/EFSVolumeConfiguration" + "$ref": "#/definitions/EfsVolumeConfiguration" }, "Host": { - "$ref": "#/definitions/Host" + "$ref": "#/definitions/VolumesHost" }, "Name": { "type": "string" } }, "type": "object" + }, + "VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" } }, "description": "Resource Type definition for AWS::Batch::JobDefinition", - "handlers": { - "create": { - "permissions": [ - "Batch:RegisterJobDefinition", - "Batch:TagResource", - "Batch:DescribeJobDefinitions", - "Iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "Batch:DescribeJobDefinitions", - "Batch:DeregisterJobDefinition", - "Iam:PassRole" - ] - }, - "list": { - "permissions": [ - "Batch:DescribeJobDefinitions" - ] - }, - "read": { - "permissions": [ - "Batch:DescribeJobDefinitions" - ] - }, - "update": { - "permissions": [ - "Batch:DescribeJobDefinitions", - "Batch:TagResource", - "Batch:UntagResource", - "Iam:PassRole" - ] - } - }, "primaryIdentifier": [ - "/properties/JobDefinitionArn" + "/properties/Id" ], "properties": { - "ContainerOrchestrationType": { - "type": "string" - }, "ContainerProperties": { "$ref": "#/definitions/ContainerProperties" }, "EksProperties": { "$ref": "#/definitions/EksProperties" }, - "JobDefinitionArn": { + "Id": { "type": "string" }, "JobDefinitionName": { - "maxLength": 128, "type": "string" }, "NodeProperties": { "$ref": "#/definitions/NodeProperties" }, "Parameters": { - "additionalProperties": false, - "patternProperties": { - ".*": { - "type": "string" - } - }, "type": "object" }, "PlatformCapabilities": { - "insertionOrder": true, "items": { "type": "string" }, @@ -806,53 +725,24 @@ "RetryStrategy": { "$ref": "#/definitions/RetryStrategy" }, - "Revision": { - "type": "integer" - }, "SchedulingPriority": { "type": "integer" }, - "Status": { - "type": "string" - }, "Tags": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "patternProperties": { - ".*": { - "type": "string" - } - }, "type": "object" }, "Timeout": { - "$ref": "#/definitions/JobTimeout" + "$ref": "#/definitions/Timeout" }, "Type": { "type": "string" } }, "readOnlyProperties": [ - "/properties/ContainerOrchestrationType", - "/properties/JobDefinitionArn", - "/properties/Revision", - "/properties/Status" + "/properties/Id" ], "required": [ "Type" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Batch::JobDefinition", - "writeOnlyProperties": [ - "/properties/ContainerProperties/InstanceType", - "/properties/NodeProperties/NodeRangeProperties/*/Container/FargatePlatformConfiguration/PlatformVersion", - "/properties/NodeProperties/NodeRangeProperties/*/Container/NetworkConfiguration/AssignPublicIp" - ] + "typeName": "AWS::Batch::JobDefinition" } diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-codedeploy-deploymentgroup.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-codedeploy-deploymentgroup.json deleted file mode 100644 index 208990a115..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-codedeploy-deploymentgroup.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DeploymentGroupName", - "/properties/ApplicationName" - ], - "definitions": { - "Alarm": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "AlarmConfiguration": { - "additionalProperties": false, - "properties": { - "Alarms": { - "items": { - "$ref": "#/definitions/Alarm" - }, - "type": "array", - "uniqueItems": true - }, - "Enabled": { - "type": "boolean" - }, - "IgnorePollAlarmFailure": { - "type": "boolean" - } - }, - "type": "object" - }, - "AutoRollbackConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - }, - "Events": { - "items": { - "enum": [ - "DEPLOYMENT_FAILURE", - "DEPLOYMENT_STOP_ON_ALARM", - "DEPLOYMENT_STOP_ON_REQUEST" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "BlueGreenDeploymentConfiguration": { - "additionalProperties": false, - "properties": { - "DeploymentReadyOption": { - "$ref": "#/definitions/DeploymentReadyOption" - }, - "GreenFleetProvisioningOption": { - "$ref": "#/definitions/GreenFleetProvisioningOption" - }, - "TerminateBlueInstancesOnDeploymentSuccess": { - "$ref": "#/definitions/BlueInstanceTerminationOption" - } - }, - "type": "object" - }, - "BlueInstanceTerminationOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - }, - "TerminationWaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "Deployment": { - "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "IgnoreApplicationStopFailures": { - "type": "boolean" - }, - "Revision": { - "$ref": "#/definitions/RevisionLocation" - } - }, - "required": [ - "Revision" - ], - "type": "object" - }, - "DeploymentReadyOption": { - "additionalProperties": false, - "properties": { - "ActionOnTimeout": { - "type": "string" - }, - "WaitTimeInMinutes": { - "type": "integer" - } - }, - "type": "object" - }, - "DeploymentStyle": { - "additionalProperties": false, - "properties": { - "DeploymentOption": { - "enum": [ - "WITH_TRAFFIC_CONTROL", - "WITHOUT_TRAFFIC_CONTROL" - ], - "type": "string" - }, - "DeploymentType": { - "enum": [ - "IN_PLACE", - "BLUE_GREEN" - ], - "type": "string" - } - }, - "type": "object" - }, - "EC2TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "EC2TagSet": { - "additionalProperties": false, - "properties": { - "Ec2TagSetList": { - "items": { - "$ref": "#/definitions/EC2TagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EC2TagSetListObject": { - "additionalProperties": false, - "properties": { - "Ec2TagGroup": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "ECSService": { - "additionalProperties": false, - "properties": { - "ClusterName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - } - }, - "required": [ - "ServiceName", - "ClusterName" - ], - "type": "object" - }, - "ELBInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "GitHubLocation": { - "additionalProperties": false, - "properties": { - "CommitId": { - "type": "string" - }, - "Repository": { - "type": "string" - } - }, - "required": [ - "Repository", - "CommitId" - ], - "type": "object" - }, - "GreenFleetProvisioningOption": { - "additionalProperties": false, - "properties": { - "Action": { - "type": "string" - } - }, - "type": "object" - }, - "LoadBalancerInfo": { - "additionalProperties": false, - "properties": { - "ElbInfoList": { - "items": { - "$ref": "#/definitions/ELBInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TargetGroupPairInfoList": { - "items": { - "$ref": "#/definitions/TargetGroupPairInfo" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSet": { - "additionalProperties": false, - "properties": { - "OnPremisesTagSetList": { - "items": { - "$ref": "#/definitions/OnPremisesTagSetListObject" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "OnPremisesTagSetListObject": { - "additionalProperties": false, - "properties": { - "OnPremisesTagGroup": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "RevisionLocation": { - "additionalProperties": false, - "properties": { - "GitHubLocation": { - "$ref": "#/definitions/GitHubLocation" - }, - "RevisionType": { - "type": "string" - }, - "S3Location": { - "$ref": "#/definitions/S3Location" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "BundleType": { - "type": "string" - }, - "ETag": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "TagFilter": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupInfo": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - } - }, - "type": "object" - }, - "TargetGroupPairInfo": { - "additionalProperties": false, - "properties": { - "ProdTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - }, - "TargetGroups": { - "items": { - "$ref": "#/definitions/TargetGroupInfo" - }, - "type": "array", - "uniqueItems": true - }, - "TestTrafficRoute": { - "$ref": "#/definitions/TrafficRoute" - } - }, - "type": "object" - }, - "TrafficRoute": { - "additionalProperties": false, - "properties": { - "ListenerArns": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "TriggerConfig": { - "additionalProperties": false, - "properties": { - "TriggerEvents": { - "items": { - "enum": [ - "DeploymentStart", - "DeploymentSuccess", - "DeploymentFailure", - "DeploymentStop", - "DeploymentRollback", - "DeploymentReady", - "InstanceStart", - "InstanceSuccess", - "InstanceFailure", - "InstanceReady" - ], - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "TriggerName": { - "type": "string" - }, - "TriggerTargetArn": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::CodeDeploy::DeploymentGroup", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AlarmConfiguration": { - "$ref": "#/definitions/AlarmConfiguration" - }, - "ApplicationName": { - "type": "string" - }, - "AutoRollbackConfiguration": { - "$ref": "#/definitions/AutoRollbackConfiguration" - }, - "AutoScalingGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "BlueGreenDeploymentConfiguration": { - "$ref": "#/definitions/BlueGreenDeploymentConfiguration" - }, - "Deployment": { - "$ref": "#/definitions/Deployment" - }, - "DeploymentConfigName": { - "type": "string" - }, - "DeploymentGroupName": { - "type": "string" - }, - "DeploymentStyle": { - "$ref": "#/definitions/DeploymentStyle" - }, - "ECSServices": { - "items": { - "$ref": "#/definitions/ECSService" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagFilters": { - "items": { - "$ref": "#/definitions/EC2TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "Ec2TagSet": { - "$ref": "#/definitions/EC2TagSet" - }, - "Id": { - "type": "string" - }, - "LoadBalancerInfo": { - "$ref": "#/definitions/LoadBalancerInfo" - }, - "OnPremisesInstanceTagFilters": { - "items": { - "$ref": "#/definitions/TagFilter" - }, - "type": "array", - "uniqueItems": true - }, - "OnPremisesTagSet": { - "$ref": "#/definitions/OnPremisesTagSet" - }, - "OutdatedInstancesStrategy": { - "type": "string" - }, - "ServiceRoleArn": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TerminationHookEnabled": { - "type": "boolean" - }, - "TriggerConfigurations": { - "items": { - "$ref": "#/definitions/TriggerConfig" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ApplicationName", - "ServiceRoleArn" - ], - "typeName": "AWS::CodeDeploy::DeploymentGroup" -} 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..db3b6ac2be --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-dynamodb-globaltable.json @@ -0,0 +1,607 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "additionalProperties": false, + "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": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "Projection", + "KeySchema" + ], + "type": "object" + }, + "KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType", + "AttributeName" + ], + "type": "object" + }, + "KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "maxLength": 255, + "minLength": 3, + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "type": "array", + "uniqueItems": true + }, + "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": { + "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" + }, + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "Region" + ], + "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" + } + }, + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "handlers": { + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + }, + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] + }, + "read": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "dynamodb:DescribeContinuousBackups", + "dynamodb:DescribeContributorInsights", + "dynamodb:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTable", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:DescribeTimeToLive", + "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:DescribeKinesisStreamingDestination", + "dynamodb:DescribeTableReplicaAutoScaling", + "dynamodb:UpdateTableReplicaAutoScaling", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "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 + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + }, + "type": "array", + "uniqueItems": true + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/KeySchema" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "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-ec2-subnet.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnet.json new file mode 100644 index 0000000000..1e4d39cfd3 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-subnet.json @@ -0,0 +1,166 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Ipv6CidrBlock" + ], + "createOnlyProperties": [ + "/properties/VpcId", + "/properties/AvailabilityZone", + "/properties/AvailabilityZoneId", + "/properties/CidrBlock", + "/properties/OutpostArn", + "/properties/Ipv6Native" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "description": "Resource Type definition for AWS::EC2::Subnet", + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:ModifySubnetAttribute" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DeleteSubnet" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:DescribeNetworkAcls" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "ec2:ModifySubnetAttribute", + "ec2:CreateTags", + "ec2:DeleteTags", + "ec2:AssociateSubnetCidrBlock", + "ec2:DisassociateSubnetCidrBlock" + ] + } + }, + "primaryIdentifier": [ + "/properties/SubnetId" + ], + "properties": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "awsType": "AvailabilityZone", + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "Ipv4NetmaskLength": { + "description": "The netmask length of the IPv4 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + "type": "integer" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6CidrBlocks": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": false + }, + "Ipv6Native": { + "type": "boolean" + }, + "Ipv6NetmaskLength": { + "description": "The netmask length of the IPv6 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool", + "type": "integer" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "NetworkAclAssociationId": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, + "VpcId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/NetworkAclAssociationId", + "/properties/SubnetId", + "/properties/Ipv6CidrBlocks" + ], + "required": [ + "VpcId" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::Subnet" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-cluster.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-cluster.json deleted file mode 100644 index 7ce37fccb6..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-emr-cluster.json +++ /dev/null @@ -1,858 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Steps", - "/properties/EbsRootVolumeSize", - "/properties/SecurityConfiguration", - "/properties/ScaleDownBehavior", - "/properties/Configurations", - "/properties/ReleaseLabel", - "/properties/BootstrapActions", - "/properties/EbsRootVolumeIops", - "/properties/KerberosAttributes", - "/properties/ServiceRole", - "/properties/LogEncryptionKmsKeyId", - "/properties/Name", - "/properties/EbsRootVolumeThroughput", - "/properties/JobFlowRole", - "/properties/AdditionalInfo", - "/properties/LogUri", - "/properties/CustomAmiId", - "/properties/PlacementGroupConfigs", - "/properties/OSReleaseLabel", - "/properties/AutoScalingRole", - "/properties/Applications" - ], - "definitions": { - "Application": { - "additionalProperties": false, - "properties": { - "AdditionalInfo": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Name": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - }, - "AutoScalingPolicy": { - "additionalProperties": false, - "properties": { - "Constraints": { - "$ref": "#/definitions/ScalingConstraints" - }, - "Rules": { - "items": { - "$ref": "#/definitions/ScalingRule" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Constraints", - "Rules" - ], - "type": "object" - }, - "AutoTerminationPolicy": { - "additionalProperties": false, - "properties": { - "IdleTimeout": { - "type": "integer" - } - }, - "type": "object" - }, - "BootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "ScriptBootstrapAction": { - "$ref": "#/definitions/ScriptBootstrapActionConfig" - } - }, - "required": [ - "ScriptBootstrapAction", - "Name" - ], - "type": "object" - }, - "CloudWatchAlarmDefinition": { - "additionalProperties": false, - "properties": { - "ComparisonOperator": { - "type": "string" - }, - "Dimensions": { - "items": { - "$ref": "#/definitions/MetricDimension" - }, - "type": "array", - "uniqueItems": true - }, - "EvaluationPeriods": { - "type": "integer" - }, - "MetricName": { - "type": "string" - }, - "Namespace": { - "type": "string" - }, - "Period": { - "type": "integer" - }, - "Statistic": { - "type": "string" - }, - "Threshold": { - "type": "number" - }, - "Unit": { - "type": "string" - } - }, - "required": [ - "MetricName", - "ComparisonOperator", - "Period", - "Threshold" - ], - "type": "object" - }, - "ComputeLimits": { - "additionalProperties": false, - "properties": { - "MaximumCapacityUnits": { - "type": "integer" - }, - "MaximumCoreCapacityUnits": { - "type": "integer" - }, - "MaximumOnDemandCapacityUnits": { - "type": "integer" - }, - "MinimumCapacityUnits": { - "type": "integer" - }, - "UnitType": { - "type": "string" - } - }, - "required": [ - "UnitType", - "MaximumCapacityUnits", - "MinimumCapacityUnits" - ], - "type": "object" - }, - "Configuration": { - "additionalProperties": false, - "properties": { - "Classification": { - "type": "string" - }, - "ConfigurationProperties": { - "patternProperties": { - "[a-zA-Z0-9]+": { - "type": "string" - } - }, - "type": "object" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - } - }, - "type": "object" - }, - "EbsBlockDeviceConfig": { - "additionalProperties": false, - "properties": { - "VolumeSpecification": { - "$ref": "#/definitions/VolumeSpecification" - }, - "VolumesPerInstance": { - "type": "integer" - } - }, - "required": [ - "VolumeSpecification" - ], - "type": "object" - }, - "EbsConfiguration": { - "additionalProperties": false, - "properties": { - "EbsBlockDeviceConfigs": { - "items": { - "$ref": "#/definitions/EbsBlockDeviceConfig" - }, - "type": "array", - "uniqueItems": true - }, - "EbsOptimized": { - "type": "boolean" - } - }, - "type": "object" - }, - "HadoopJarStepConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Jar": { - "type": "string" - }, - "MainClass": { - "type": "string" - }, - "StepProperties": { - "items": { - "$ref": "#/definitions/KeyValue" - }, - "type": "array", - "uniqueItems": true - } - }, - "required": [ - "Jar" - ], - "type": "object" - }, - "InstanceFleetConfig": { - "additionalProperties": false, - "properties": { - "InstanceTypeConfigs": { - "items": { - "$ref": "#/definitions/InstanceTypeConfig" - }, - "type": "array", - "uniqueItems": true - }, - "LaunchSpecifications": { - "$ref": "#/definitions/InstanceFleetProvisioningSpecifications" - }, - "Name": { - "type": "string" - }, - "TargetOnDemandCapacity": { - "type": "integer" - }, - "TargetSpotCapacity": { - "type": "integer" - } - }, - "type": "object" - }, - "InstanceFleetProvisioningSpecifications": { - "additionalProperties": false, - "properties": { - "OnDemandSpecification": { - "$ref": "#/definitions/OnDemandProvisioningSpecification" - }, - "SpotSpecification": { - "$ref": "#/definitions/SpotProvisioningSpecification" - } - }, - "type": "object" - }, - "InstanceGroupConfig": { - "additionalProperties": false, - "properties": { - "AutoScalingPolicy": { - "$ref": "#/definitions/AutoScalingPolicy" - }, - "BidPrice": { - "type": "string" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceCount": { - "type": "integer" - }, - "InstanceType": { - "type": "string" - }, - "Market": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "InstanceCount", - "InstanceType" - ], - "type": "object" - }, - "InstanceTypeConfig": { - "additionalProperties": false, - "properties": { - "BidPrice": { - "type": "string" - }, - "BidPriceAsPercentageOfOnDemandPrice": { - "type": "number" - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsConfiguration": { - "$ref": "#/definitions/EbsConfiguration" - }, - "InstanceType": { - "cfnRegionSchema": "aws_emr_cluster/instancetypeconfig_instancetype_enum", - "type": "string" - }, - "WeightedCapacity": { - "type": "integer" - } - }, - "required": [ - "InstanceType" - ], - "type": "object" - }, - "JobFlowInstancesConfig": { - "additionalProperties": false, - "properties": { - "AdditionalMasterSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "AdditionalSlaveSecurityGroups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "CoreInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "CoreInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Ec2KeyName": { - "type": "string" - }, - "Ec2SubnetId": { - "type": "string" - }, - "Ec2SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "EmrManagedMasterSecurityGroup": { - "type": "string" - }, - "EmrManagedSlaveSecurityGroup": { - "type": "string" - }, - "HadoopVersion": { - "type": "string" - }, - "KeepJobFlowAliveWhenNoSteps": { - "type": "boolean" - }, - "MasterInstanceFleet": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "MasterInstanceGroup": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "Placement": { - "$ref": "#/definitions/PlacementType" - }, - "ServiceAccessSecurityGroup": { - "type": "string" - }, - "TaskInstanceFleets": { - "items": { - "$ref": "#/definitions/InstanceFleetConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TaskInstanceGroups": { - "items": { - "$ref": "#/definitions/InstanceGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "TerminationProtected": { - "type": "boolean" - } - }, - "type": "object" - }, - "KerberosAttributes": { - "additionalProperties": false, - "properties": { - "ADDomainJoinPassword": { - "type": "string" - }, - "ADDomainJoinUser": { - "type": "string" - }, - "CrossRealmTrustPrincipalPassword": { - "type": "string" - }, - "KdcAdminPassword": { - "type": "string" - }, - "Realm": { - "type": "string" - } - }, - "required": [ - "KdcAdminPassword", - "Realm" - ], - "type": "object" - }, - "KeyValue": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "ManagedScalingPolicy": { - "additionalProperties": false, - "properties": { - "ComputeLimits": { - "$ref": "#/definitions/ComputeLimits" - } - }, - "type": "object" - }, - "MetricDimension": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "OnDemandProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - } - }, - "required": [ - "AllocationStrategy" - ], - "type": "object" - }, - "PlacementGroupConfig": { - "additionalProperties": false, - "properties": { - "InstanceRole": { - "type": "string" - }, - "PlacementStrategy": { - "type": "string" - } - }, - "required": [ - "InstanceRole" - ], - "type": "object" - }, - "PlacementType": { - "additionalProperties": false, - "properties": { - "AvailabilityZone": { - "awsType": "AvailabilityZone", - "type": "string" - } - }, - "required": [ - "AvailabilityZone" - ], - "type": "object" - }, - "ScalingAction": { - "additionalProperties": false, - "properties": { - "Market": { - "type": "string" - }, - "SimpleScalingPolicyConfiguration": { - "$ref": "#/definitions/SimpleScalingPolicyConfiguration" - } - }, - "required": [ - "SimpleScalingPolicyConfiguration" - ], - "type": "object" - }, - "ScalingConstraints": { - "additionalProperties": false, - "properties": { - "MaxCapacity": { - "type": "integer" - }, - "MinCapacity": { - "type": "integer" - } - }, - "required": [ - "MinCapacity", - "MaxCapacity" - ], - "type": "object" - }, - "ScalingRule": { - "additionalProperties": false, - "properties": { - "Action": { - "$ref": "#/definitions/ScalingAction" - }, - "Description": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Trigger": { - "$ref": "#/definitions/ScalingTrigger" - } - }, - "required": [ - "Action", - "Trigger", - "Name" - ], - "type": "object" - }, - "ScalingTrigger": { - "additionalProperties": false, - "properties": { - "CloudWatchAlarmDefinition": { - "$ref": "#/definitions/CloudWatchAlarmDefinition" - } - }, - "required": [ - "CloudWatchAlarmDefinition" - ], - "type": "object" - }, - "ScriptBootstrapActionConfig": { - "additionalProperties": false, - "properties": { - "Args": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "Path": { - "type": "string" - } - }, - "required": [ - "Path" - ], - "type": "object" - }, - "SimpleScalingPolicyConfiguration": { - "additionalProperties": false, - "properties": { - "AdjustmentType": { - "type": "string" - }, - "CoolDown": { - "type": "integer" - }, - "ScalingAdjustment": { - "type": "integer" - } - }, - "required": [ - "ScalingAdjustment" - ], - "type": "object" - }, - "SpotProvisioningSpecification": { - "additionalProperties": false, - "properties": { - "AllocationStrategy": { - "type": "string" - }, - "BlockDurationMinutes": { - "type": "integer" - }, - "TimeoutAction": { - "type": "string" - }, - "TimeoutDurationMinutes": { - "type": "integer" - } - }, - "required": [ - "TimeoutDurationMinutes", - "TimeoutAction" - ], - "type": "object" - }, - "StepConfig": { - "additionalProperties": false, - "properties": { - "ActionOnFailure": { - "type": "string" - }, - "HadoopJarStep": { - "$ref": "#/definitions/HadoopJarStepConfig" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "HadoopJarStep", - "Name" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "VolumeSpecification": { - "additionalProperties": false, - "properties": { - "Iops": { - "type": "integer" - }, - "SizeInGB": { - "type": "integer" - }, - "Throughput": { - "type": "integer" - }, - "VolumeType": { - "type": "string" - } - }, - "required": [ - "SizeInGB", - "VolumeType" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::EMR::Cluster", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AdditionalInfo": { - "type": "object" - }, - "Applications": { - "items": { - "$ref": "#/definitions/Application" - }, - "type": "array", - "uniqueItems": true - }, - "AutoScalingRole": { - "type": "string" - }, - "AutoTerminationPolicy": { - "$ref": "#/definitions/AutoTerminationPolicy" - }, - "BootstrapActions": { - "items": { - "$ref": "#/definitions/BootstrapActionConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Configurations": { - "items": { - "$ref": "#/definitions/Configuration" - }, - "type": "array", - "uniqueItems": true - }, - "CustomAmiId": { - "type": "string" - }, - "EbsRootVolumeIops": { - "type": "integer" - }, - "EbsRootVolumeSize": { - "type": "integer" - }, - "EbsRootVolumeThroughput": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Instances": { - "$ref": "#/definitions/JobFlowInstancesConfig" - }, - "JobFlowRole": { - "type": "string" - }, - "KerberosAttributes": { - "$ref": "#/definitions/KerberosAttributes" - }, - "LogEncryptionKmsKeyId": { - "type": "string" - }, - "LogUri": { - "type": "string" - }, - "ManagedScalingPolicy": { - "$ref": "#/definitions/ManagedScalingPolicy" - }, - "MasterPublicDNS": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OSReleaseLabel": { - "type": "string" - }, - "PlacementGroupConfigs": { - "items": { - "$ref": "#/definitions/PlacementGroupConfig" - }, - "type": "array", - "uniqueItems": true - }, - "ReleaseLabel": { - "type": "string" - }, - "ScaleDownBehavior": { - "type": "string" - }, - "SecurityConfiguration": { - "type": "string" - }, - "ServiceRole": { - "type": "string" - }, - "StepConcurrencyLevel": { - "type": "integer" - }, - "Steps": { - "items": { - "$ref": "#/definitions/StepConfig" - }, - "type": "array", - "uniqueItems": true - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VisibleToAllUsers": { - "type": "boolean" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/MasterPublicDNS" - ], - "required": [ - "Instances", - "ServiceRole", - "JobFlowRole", - "Name" - ], - "typeName": "AWS::EMR::Cluster" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-image.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-image.json deleted file mode 100644 index 5582329923..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-image.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ImageRecipeArn", - "/properties/ContainerRecipeArn", - "/properties/InfrastructureConfigurationArn", - "/properties/DistributionConfigurationArn", - "/properties/ImageTestsConfiguration", - "/properties/ImageScanningConfiguration", - "/properties/EnhancedImageMetadataEnabled", - "/properties/Tags" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don\u2019t provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Contains settings for Image Builder image resource and container image scans.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "The image tests configuration used when creating this image.", - "properties": { - "ImageTestsEnabled": { - "description": "ImageTestsEnabled", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "TimeoutMinutes", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::Image", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:GetImage", - "imagebuilder:CreateImage", - "imagebuilder:TagResource", - "inspector2:BatchGetAccountStatus" - ], - "timeoutInMinutes": 720 - }, - "delete": { - "permissions": [ - "imagebuilder:GetImage", - "imagebuilder:DeleteImage", - "imagebuilder:UnTagResource", - "imagebuilder:CancelImageCreation" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" - } - }, - "required": [ - "Arn" - ] - }, - "permissions": [ - "imagebuilder:ListImages" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImage" - ] - } - }, - "oneOf": [ - { - "required": [ - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageId": { - "description": "The AMI ID of the EC2 AMI in current region.", - "type": "string" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration used when creating this image." - }, - "ImageUri": { - "description": "URI for containers created in current Region with default ECR image tag", - "type": "string" - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration.", - "type": "string" - }, - "Name": { - "description": "The name of the image.", - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags associated with the image.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/ImageId", - "/properties/ImageUri" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::Image" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-imagepipeline.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-imagepipeline.json deleted file mode 100644 index 5b70e0ff38..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-imagebuilder-imagepipeline.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EcrConfiguration": { - "additionalProperties": false, - "description": "Settings for Image Builder to configure the ECR repository and output container images that are scanned.", - "properties": { - "ContainerTags": { - "description": "Tags for Image Builder to apply the output container image that is scanned. Tags can help you identify and manage your scanned images.", - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "RepositoryName": { - "description": "The name of the container repository that Amazon Inspector scans to identify findings for your container images. The name includes the path for the repository location. If you don't provide this information, Image Builder creates a repository in your account named image-builder-image-scanning-repository to use for vulnerability scans for your output container images.", - "type": "string" - } - }, - "type": "object" - }, - "ImageScanningConfiguration": { - "additionalProperties": false, - "description": "Determines if tests should run after building the image. Image Builder defaults to enable tests to run following the image build, before image distribution.", - "properties": { - "EcrConfiguration": { - "$ref": "#/definitions/EcrConfiguration", - "description": "Contains ECR settings for vulnerability scans." - }, - "ImageScanningEnabled": { - "description": "This sets whether Image Builder keeps a snapshot of the vulnerability scans that Amazon Inspector runs against the build instance when you create a new image.", - "type": "boolean" - } - }, - "type": "object" - }, - "ImageTestsConfiguration": { - "additionalProperties": false, - "description": "Image tests configuration.", - "properties": { - "ImageTestsEnabled": { - "description": "Defines if tests should be executed when building this image.", - "type": "boolean" - }, - "TimeoutMinutes": { - "description": "The maximum time in minutes that tests are permitted to run.", - "maximum": 1440, - "minimum": 60, - "type": "integer" - } - }, - "type": "object" - }, - "Schedule": { - "additionalProperties": false, - "description": "The schedule of the image pipeline.", - "properties": { - "PipelineExecutionStartCondition": { - "description": "The condition configures when the pipeline should trigger a new image build.", - "enum": [ - "EXPRESSION_MATCH_ONLY", - "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" - ], - "type": "string" - }, - "ScheduleExpression": { - "description": "The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.", - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource schema for AWS::ImageBuilder::ImagePipeline", - "handlers": { - "create": { - "permissions": [ - "ecr:BatchGetRepositoryScanningConfiguration", - "iam:GetRole", - "iam:PassRole", - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:CreateImagePipeline", - "imagebuilder:GetWorkflow", - "inspector2:BatchGetAccountStatus" - ] - }, - "delete": { - "permissions": [ - "imagebuilder:UnTagResource", - "imagebuilder:GetImagePipeline", - "imagebuilder:DeleteImagePipeline" - ] - }, - "list": { - "permissions": [ - "imagebuilder:ListImagePipelines" - ] - }, - "read": { - "permissions": [ - "imagebuilder:GetImagePipeline" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "imagebuilder:GetImagePipeline", - "imagebuilder:UpdateImagePipeline", - "imagebuilder:GetWorkflow" - ] - } - }, - "oneOf": [ - { - "required": [ - "Name", - "ContainerRecipeArn", - "InfrastructureConfigurationArn" - ] - }, - { - "required": [ - "Name", - "ImageRecipeArn", - "InfrastructureConfigurationArn" - ] - } - ], - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the image pipeline.", - "type": "string" - }, - "ContainerRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the container recipe that defines how images are configured and tested.", - "type": "string" - }, - "Description": { - "description": "The description of the image pipeline.", - "type": "string" - }, - "DistributionConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.", - "type": "string" - }, - "EnhancedImageMetadataEnabled": { - "description": "Collects additional information about the image being created, including the operating system (OS) version and package list.", - "type": "boolean" - }, - "ImageRecipeArn": { - "description": "The Amazon Resource Name (ARN) of the image recipe that defines how images are configured, tested, and assessed.", - "type": "string" - }, - "ImageScanningConfiguration": { - "$ref": "#/definitions/ImageScanningConfiguration", - "description": "Contains settings for vulnerability scans." - }, - "ImageTestsConfiguration": { - "$ref": "#/definitions/ImageTestsConfiguration", - "description": "The image tests configuration of the image pipeline." - }, - "InfrastructureConfigurationArn": { - "description": "The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.", - "type": "string" - }, - "Name": { - "description": "The name of the image pipeline.", - "type": "string" - }, - "Schedule": { - "$ref": "#/definitions/Schedule", - "description": "The schedule of the image pipeline." - }, - "Status": { - "description": "The status of the image pipeline.", - "enum": [ - "DISABLED", - "ENABLED" - ], - "type": "string" - }, - "Tags": { - "additionalProperties": false, - "description": "The tags of this image pipeline.", - "patternProperties": { - ".{1,}": { - "type": "string" - } - }, - "type": "object" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-imagebuilder.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ImageBuilder::ImagePipeline" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-function.json deleted file mode 100644 index 486712593c..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-function.json +++ /dev/null @@ -1,624 +0,0 @@ -{ - "additionalProperties": false, - "cfnSchema": [ - "aws_lambda_function/zipfile_runtime_exists", - "aws_lambda_function/zipfile_runtime_enum" - ], - "createOnlyProperties": [ - "/properties/FunctionName" - ], - "definitions": { - "Code": { - "additionalProperties": false, - "properties": { - "ImageUri": { - "description": "ImageUri.", - "type": "string" - }, - "S3Bucket": { - "description": "An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[0-9A-Za-z\\.\\-_]*(?