diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json index 3d90a555da..aaf030f8e4 100644 --- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json @@ -1 +1 @@ -{"etag": "\"cffefef14d086a601c159cd89d3bf9c8\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ce25bdb8abb4b4a5000196604acac74e\"", "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 ae9b767a39..3ed2bf2b96 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"55f676f5896e8379e84ff2c6199f17e8\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"faf6989a0a41e53ef30253e597cccdb6\"", "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 b6af67321b..acc2351d12 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"cee39839675b8978bd1d56646aa306f1\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b89b27fc4f4b6afa8d35284f82b3e523\"", "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 4c4544dffb..19cb4a1f6b 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"c69a9dfbd603f8a4982b96228a4f1e88\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"baa16e498e4422d8e6b6d7df17b3c871\"", "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 eb8fb3a713..c1b99f3369 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"664947166f678e104d9a53587191cb93\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e29122cd8f571bb1f576b02be7f4b6a7\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json index 689ee7fff8..967c75ce71 100644 --- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -1 +1 @@ -{"etag": "\"2744be9038f03bf530943bb5ccd95b9a\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4239e96fd4bfe94d6a92732935d427d5\"", "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 88e2fb62ce..5cf503bd9d 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"39f0dc865275b8434acc92c47c12c842\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"711637f79ae4999e68d86de65488084b\"", "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 95b4de8d69..f73e34ac0c 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"3353685ca908ceb18eaead223166c588\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"d7df680cf8929470502f430b81fafe8e\"", "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 2d685967e5..c6adbb3df2 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"5f24cfa6fd01aaa3913d67d753518080\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"56f1471173bcb928fcff8c21bfe63e50\"", "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 8c4b62b35f..9243d1f26a 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"5fbe6da56fe7b9687c5ad5a21ef8538a\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b86db309264607a404022713c045c4bd\"", "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 dd4b8b5b4f..7a941046f1 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"7ca60bf7dbeff2644204427adc40fe42\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2baa3ab1691a30c9ab9e411f48a9e69a\"", "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 5f3843399c..717707178b 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"b72c560e4f56a786dbec577a9e725674\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ac4af4ac6c2571af2dd07f84b588f173\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json index 2101baf5e8..84d58d04c6 100644 --- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json @@ -1 +1 @@ -{"etag": "\"f902c7e2b3f2e7c5d4bf9d1fe3f83ab2\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"85ccef5385fdcdf047d545f0555ef36d\"", "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 9d189bfbe3..4d574081bb 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"4313cd5b8928196eacca6a40867156d7\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"3349c3ec7cdd5b5538d7a8d2d9fc4547\"", "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 97178043bc..60bcae7ff0 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"7ac5a4b8e306962681fb208ffa430d50\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c2c2d3b5eeae69f92f76a2b0b22a2c99\"", "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 c7106cc826..b4ad123f70 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"8c1c8d0440beb779976e75466f194dc0\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2d5815402c22aeb1f604ce3420c18881\"", "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 b6ea90f1dc..b6431b7afe 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"5370dd25eb2bb60db28344984a9f2646\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"52648d3b5f835beb5891fe9349d9c175\"", "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 c649a3f94a..cbd5ad708e 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"c7fc4b7c83e2167bba332e4a19da3b64\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4c96a22f1ec1e60f3e942aaa692cde1a\"", "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 fe42c0f61f..8f482ef838 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"ac9ced423809b3de671c00eea15e4d3b\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"86ef0954e5ef771de9191db93454128a\"", "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 3a9aee0685..44e49f2f5f 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"b344266a932e307d1f0c7b6a6d78ac20\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e69ca71cda7efb845e1266a77b4a3447\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json index fa72a703ce..8444c964b2 100644 --- a/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d85e2e061cacfcffe4902adb1074a04e6bb7f975b606f8db57532faddfcdd8c8.meta.json @@ -1 +1 @@ -{"etag": "\"086babfb7ae9a3e6e9ee89df46102b85\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"237854d0fa36fb5360f396c170cca855\"", "url": "https://schema.cloudformation.ca-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json index aa7dc55a02..15444105ba 100644 --- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json @@ -1 +1 @@ -{"etag": "\"8891207e8c8b50811609873053e6fbd9\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"f6175d481dcfaf1ec2221cf6d0151e33\"", "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 5a65e6ce60..4f8dd5c2d8 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"f75506350f5ef65a8b28876639162955\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a6d6a670f398cc6e5260d8c5ce1ae439\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json index ef266a2724..709ffd9b50 100644 --- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json @@ -1 +1 @@ -{"etag": "\"122a33af274ff1e6daa81cdc867741ae\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"73566ec980b06d325ce1a4a22ad77a68\"", "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 003673f71e..eb453f0fd9 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"e201293dfc8891a9e6f94cfd380fc87e\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"529c71e48771ea303608d647d1518de1\"", "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 75d80b5cf6..ae7046deef 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"a5a80d34f3750a454b76809972bcdaad\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a5bf068c9d9bdfd570adee4b483565c2\"", "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 70f4efdbb5..52b1349715 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"8016bf66e4c4779840d7496ff7f53ddb\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"7f8bb2537d2691db7d2fc5a3c24cdd25\"", "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 2598f780d1..529461b80f 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"c14d566af707d3737806b39fd042a1ff\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"f5d0315754b97b8839f818c821184e3b\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json index 9177eae930..8d45c2bf36 100644 --- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json @@ -1 +1 @@ -{"etag": "\"339cc8f1798e75cdc07510f0ccf8b027\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c682f6742631520e7a4d1154bb40d456\"", "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 030041cda3..09b5fe9b03 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"ef681c475d71cb930e40edfcbf3e74da\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"179bf748fddd08c2ba72fff97ea29170\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json index ae3ca2a19c..879f354726 100644 --- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json @@ -1 +1 @@ -{"etag": "\"e3f5554ebd96c86581c17edbcdb00a58\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0374385d2a54a4bf42d5a875021c7787\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json index 9cd03294aa..eb4c95c263 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"b4e78b503b1dc106f9afaac0f1729aa5\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"f8cfac6e3f447d0214133c57e1e7f9f4\"", "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 f3a4cc5416..68a5246f3b 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"023e0cc1526592a354c93bfdab453e5f\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"53ecce19317b2394f6ba8f7389bf58c7\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} 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 60d0876303..bdcf7d28fb 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 @@ -71320,7 +71320,7 @@ "type": "string" }, "Engine": { - "const": "postgres" + "const": "mariadb" }, "LicenseModel": false }, @@ -71341,6 +71341,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -71348,6 +71355,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -71356,12 +71372,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -71374,7 +71412,7 @@ "type": "string" }, "Engine": { - "const": "postgres" + "const": "mariadb" }, "LicenseModel": { "const": "general-public-license" @@ -71398,6 +71436,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -71405,6 +71450,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -71413,12 +71467,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -71431,7 +71507,7 @@ "type": "string" }, "Engine": { - "const": "mysql" + "const": "postgres" }, "LicenseModel": false }, @@ -71452,6 +71528,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -71459,6 +71542,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -71467,12 +71559,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -71485,7 +71599,7 @@ "type": "string" }, "Engine": { - "const": "mysql" + "const": "postgres" }, "LicenseModel": { "const": "general-public-license" @@ -71509,6 +71623,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -71516,6 +71637,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -71524,12 +71654,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -71542,7 +71694,7 @@ "type": "string" }, "Engine": { - "const": "aurora-mysql" + "const": "mysql" }, "LicenseModel": false }, @@ -71555,6 +71707,37 @@ "properties": { "DBInstanceClass": { "enum": [ + "db.m5.12xlarge", + "db.m5.16xlarge", + "db.m5.24xlarge", + "db.m5.2xlarge", + "db.m5.4xlarge", + "db.m5.8xlarge", + "db.m5.large", + "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", + "db.m6gd.12xlarge", + "db.m6gd.16xlarge", + "db.m6gd.2xlarge", + "db.m6gd.4xlarge", + "db.m6gd.8xlarge", + "db.m6gd.large", + "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -71563,10 +71746,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", - "db.serverless", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", + "db.t3.2xlarge", "db.t3.large", "db.t3.medium", - "db.t3.small" + "db.t3.micro", + "db.t3.small", + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -71579,7 +71786,7 @@ "type": "string" }, "Engine": { - "const": "aurora-mysql" + "const": "mysql" }, "LicenseModel": { "const": "general-public-license" @@ -71595,6 +71802,37 @@ "properties": { "DBInstanceClass": { "enum": [ + "db.m5.12xlarge", + "db.m5.16xlarge", + "db.m5.24xlarge", + "db.m5.2xlarge", + "db.m5.4xlarge", + "db.m5.8xlarge", + "db.m5.large", + "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", + "db.m6gd.12xlarge", + "db.m6gd.16xlarge", + "db.m6gd.2xlarge", + "db.m6gd.4xlarge", + "db.m6gd.8xlarge", + "db.m6gd.large", + "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -71603,10 +71841,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", - "db.serverless", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", + "db.t3.2xlarge", "db.t3.large", "db.t3.medium", - "db.t3.small" + "db.t3.micro", + "db.t3.small", + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -71619,7 +71881,7 @@ "type": "string" }, "Engine": { - "const": "aurora" + "const": "aurora-mysql" }, "LicenseModel": false }, @@ -71640,6 +71902,7 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.serverless", "db.t3.large", "db.t3.medium", "db.t3.small" @@ -71655,7 +71918,7 @@ "type": "string" }, "Engine": { - "const": "aurora" + "const": "aurora-mysql" }, "LicenseModel": { "const": "general-public-license" @@ -71679,6 +71942,7 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.serverless", "db.t3.large", "db.t3.medium", "db.t3.small" @@ -71694,7 +71958,7 @@ "type": "string" }, "Engine": { - "const": "aurora-postgresql" + "const": "aurora" }, "LicenseModel": false }, @@ -71715,9 +71979,9 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", - "db.serverless", "db.t3.large", - "db.t3.medium" + "db.t3.medium", + "db.t3.small" ] } } @@ -71730,7 +71994,7 @@ "type": "string" }, "Engine": { - "const": "aurora-postgresql" + "const": "aurora" }, "LicenseModel": { "const": "general-public-license" @@ -71754,9 +72018,9 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", - "db.serverless", "db.t3.large", - "db.t3.medium" + "db.t3.medium", + "db.t3.small" ] } } @@ -71769,7 +72033,7 @@ "type": "string" }, "Engine": { - "const": "mariadb" + "const": "aurora-postgresql" }, "LicenseModel": false }, @@ -71782,21 +72046,6 @@ "properties": { "DBInstanceClass": { "enum": [ - "db.m5.12xlarge", - "db.m5.16xlarge", - "db.m5.24xlarge", - "db.m5.2xlarge", - "db.m5.4xlarge", - "db.m5.8xlarge", - "db.m5.large", - "db.m5.xlarge", - "db.m6gd.12xlarge", - "db.m6gd.16xlarge", - "db.m6gd.2xlarge", - "db.m6gd.4xlarge", - "db.m6gd.8xlarge", - "db.m6gd.large", - "db.m6gd.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -71805,12 +72054,9 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", - "db.t3.2xlarge", + "db.serverless", "db.t3.large", - "db.t3.medium", - "db.t3.micro", - "db.t3.small", - "db.t3.xlarge" + "db.t3.medium" ] } } @@ -71823,37 +72069,22 @@ "type": "string" }, "Engine": { - "const": "mariadb" + "const": "aurora-postgresql" }, "LicenseModel": { "const": "general-public-license" } }, "required": [ - "Engine", - "LicenseModel", - "DBInstanceClass" - ] - }, - "then": { - "properties": { - "DBInstanceClass": { - "enum": [ - "db.m5.12xlarge", - "db.m5.16xlarge", - "db.m5.24xlarge", - "db.m5.2xlarge", - "db.m5.4xlarge", - "db.m5.8xlarge", - "db.m5.large", - "db.m5.xlarge", - "db.m6gd.12xlarge", - "db.m6gd.16xlarge", - "db.m6gd.2xlarge", - "db.m6gd.4xlarge", - "db.m6gd.8xlarge", - "db.m6gd.large", - "db.m6gd.xlarge", + "Engine", + "LicenseModel", + "DBInstanceClass" + ] + }, + "then": { + "properties": { + "DBInstanceClass": { + "enum": [ "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -71862,12 +72093,9 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", - "db.t3.2xlarge", + "db.serverless", "db.t3.large", - "db.t3.medium", - "db.t3.micro", - "db.t3.small", - "db.t3.xlarge" + "db.t3.medium" ] } } @@ -72302,6 +72530,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -72309,6 +72544,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -72317,12 +72561,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -72359,6 +72625,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -72366,6 +72639,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -72374,12 +72656,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -72413,6 +72717,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -72420,6 +72731,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -72428,12 +72748,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -72470,6 +72812,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -72477,6 +72826,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -72485,12 +72843,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -72524,6 +72904,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -72531,6 +72918,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -72539,12 +72935,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } @@ -72581,6 +72999,13 @@ "db.m5.8xlarge", "db.m5.large", "db.m5.xlarge", + "db.m6g.12xlarge", + "db.m6g.16xlarge", + "db.m6g.2xlarge", + "db.m6g.4xlarge", + "db.m6g.8xlarge", + "db.m6g.large", + "db.m6g.xlarge", "db.m6gd.12xlarge", "db.m6gd.16xlarge", "db.m6gd.2xlarge", @@ -72588,6 +73013,15 @@ "db.m6gd.8xlarge", "db.m6gd.large", "db.m6gd.xlarge", + "db.m6i.12xlarge", + "db.m6i.16xlarge", + "db.m6i.24xlarge", + "db.m6i.2xlarge", + "db.m6i.32xlarge", + "db.m6i.4xlarge", + "db.m6i.8xlarge", + "db.m6i.large", + "db.m6i.xlarge", "db.r5.12xlarge", "db.r5.16xlarge", "db.r5.24xlarge", @@ -72596,12 +73030,34 @@ "db.r5.8xlarge", "db.r5.large", "db.r5.xlarge", + "db.r6g.12xlarge", + "db.r6g.16xlarge", + "db.r6g.2xlarge", + "db.r6g.4xlarge", + "db.r6g.8xlarge", + "db.r6g.large", + "db.r6g.xlarge", + "db.r6i.12xlarge", + "db.r6i.16xlarge", + "db.r6i.24xlarge", + "db.r6i.2xlarge", + "db.r6i.32xlarge", + "db.r6i.4xlarge", + "db.r6i.8xlarge", + "db.r6i.large", + "db.r6i.xlarge", "db.t3.2xlarge", "db.t3.large", "db.t3.medium", "db.t3.micro", "db.t3.small", - "db.t3.xlarge" + "db.t3.xlarge", + "db.t4g.2xlarge", + "db.t4g.large", + "db.t4g.medium", + "db.t4g.micro", + "db.t4g.small", + "db.t4g.xlarge" ] } } 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 e7481bc2f2..6489d32045 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -706,6 +706,7 @@ "AWS::SageMaker::Image", "AWS::SageMaker::ImageVersion", "AWS::SageMaker::InferenceExperiment", + "AWS::SageMaker::MlflowTrackingServer", "AWS::SageMaker::Model", "AWS::SageMaker::ModelCard", "AWS::SageMaker::ModelPackage", @@ -951,6 +952,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codebuild-project.json", @@ -971,6 +973,7 @@ "aws-cognito-userpoolidentityprovider.json", "aws-cognito-userpoolresourceserver.json", "aws-cognito-userpoolriskconfigurationattachment.json", + "aws-cognito-userpooluicustomizationattachment.json", "aws-cognito-userpooluser.json", "aws-cognito-userpoolusertogroupattachment.json", "aws-config-aggregationauthorization.json", @@ -1004,7 +1007,6 @@ "aws-connect-view.json", "aws-connect-viewversion.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-customerprofiles-calculatedattributedefinition.json", "aws-customerprofiles-domain.json", @@ -1234,6 +1236,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -1271,7 +1274,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1307,6 +1309,7 @@ "aws-mediaconnect-flow.json", "aws-mediaconnect-flowentitlement.json", "aws-mediaconnect-flowoutput.json", + "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", "aws-mediaconnect-gateway.json", "aws-mediatailor-channel.json", @@ -1321,7 +1324,6 @@ "aws-msk-configuration.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", @@ -1371,7 +1373,6 @@ "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1437,6 +1438,7 @@ "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", "aws-sagemaker-coderepository.json", + "aws-sagemaker-domain.json", "aws-sagemaker-endpoint.json", "aws-sagemaker-endpointconfig.json", "aws-sagemaker-featuregroup.json", @@ -1452,6 +1454,7 @@ "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", "aws-sagemaker-space.json", + "aws-sagemaker-userprofile.json", "aws-sagemaker-workteam.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", @@ -1517,6 +1520,7 @@ "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-statemachinealias.json", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-cognito-userpooluicustomizationattachment.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-cognito-userpooluicustomizationattachment.json deleted file mode 100644 index 98baaf1ea2..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-cognito-userpooluicustomizationattachment.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/UserPoolId", - "/properties/ClientId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CSS": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "UserPoolId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "UserPoolId", - "ClientId" - ], - "typeName": "AWS::Cognito::UserPoolUICustomizationAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-controltower-enabledcontrol.json similarity index 98% rename from src/cfnlint/data/schemas/providers/eu_west_1/aws-controltower-enabledcontrol.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-controltower-enabledcontrol.json index 8f0be9c61f..cae81c46bc 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-controltower-enabledcontrol.json @@ -78,8 +78,6 @@ }, "delete": { "permissions": [ - "controltower:ListEnabledControls", - "controltower:GetEnabledControl", "controltower:GetControlOperation", "controltower:DisableControl", "organizations:UpdatePolicy", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-lambda-alias.json similarity index 51% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-lambda-alias.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-lambda-alias.json index e952d8b59e..4a291518b6 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-lambda-alias.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-lambda-alias.json @@ -9,7 +9,6 @@ "additionalProperties": false, "properties": { "AdditionalVersionWeights": { - "insertionOrder": false, "items": { "$ref": "#/definitions/VersionWeight" }, @@ -17,6 +16,9 @@ "uniqueItems": true } }, + "required": [ + "AdditionalVersionWeights" + ], "type": "object" }, "ProvisionedConcurrencyConfiguration": { @@ -48,65 +50,10 @@ "type": "object" } }, - "handlers": { - "create": { - "permissions": [ - "lambda:CreateAlias", - "lambda:PutProvisionedConcurrencyConfig", - "lambda:GetProvisionedConcurrencyConfig" - ], - "timeoutInMinutes": 45 - }, - "delete": { - "permissions": [ - "lambda:DeleteAlias", - "lambda:GetAlias" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "FunctionName": { - "$ref": "resource-schema.json#/properties/FunctionName" - } - }, - "required": [ - "FunctionName" - ] - }, - "permissions": [ - "lambda:ListAliases" - ] - }, - "read": { - "permissions": [ - "lambda:GetAlias", - "lambda:GetProvisionedConcurrencyConfig" - ] - }, - "update": { - "permissions": [ - "lambda:UpdateAlias", - "lambda:GetAlias", - "lambda:PutProvisionedConcurrencyConfig", - "lambda:DeleteProvisionedConcurrencyConfig", - "lambda:GetProvisionedConcurrencyConfig", - "codedeploy:CreateDeployment", - "codedeploy:GetDeployment", - "codedeploy:GetDeploymentGroup", - "codedeploy:GetDeploymentConfig", - "codedeploy:StopDeployment" - ], - "timeoutInMinutes": 120 - } - }, "primaryIdentifier": [ - "/properties/AliasArn" + "/properties/Id" ], "properties": { - "AliasArn": { - "type": "string" - }, "Description": { "type": "string" }, @@ -116,6 +63,9 @@ "FunctionVersion": { "type": "string" }, + "Id": { + "type": "string" + }, "Name": { "type": "string" }, @@ -126,20 +76,13 @@ "$ref": "#/definitions/AliasRoutingConfiguration" } }, - "propertyTransform": { - "/properties/FunctionName": "$split(FunctionName, \":\")[-1] $OR FunctionName" - }, "readOnlyProperties": [ - "/properties/AliasArn" + "/properties/Id" ], "required": [ "FunctionName", "FunctionVersion", "Name" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-lambda", - "tagging": { - "taggable": false - }, "typeName": "AWS::Lambda::Alias" } diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-mediaconnect-flowsource.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-mediaconnect-flowsource.json deleted file mode 100644 index cf7d326061..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-mediaconnect-flowsource.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "Encryption": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "enum": [ - "aes128", - "aes192", - "aes256" - ], - "type": "string" - }, - "ConstantInitializationVector": { - "type": "string" - }, - "DeviceId": { - "type": "string" - }, - "KeyType": { - "default": "static-key", - "enum": [ - "speke", - "static-key", - "srt-password" - ], - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceId": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecretArn": { - "type": "string" - }, - "Url": { - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "GatewayBridgeSource": { - "additionalProperties": false, - "properties": { - "BridgeArn": { - "type": "string" - }, - "VpcInterfaceAttachment": { - "$ref": "#/definitions/VpcInterfaceAttachment" - } - }, - "required": [ - "BridgeArn" - ], - "type": "object" - }, - "VpcInterfaceAttachment": { - "additionalProperties": false, - "properties": { - "VpcInterfaceName": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "mediaconnect:CreateFlow", - "mediaconnect:DescribeFlow", - "mediaconnect:AddFlowSources", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:RemoveFlowSource" - ] - }, - "list": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "update": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:UpdateFlowSource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SourceArn" - ], - "properties": { - "Decryption": { - "$ref": "#/definitions/Encryption" - }, - "Description": { - "type": "string" - }, - "EntitlementArn": { - "type": "string" - }, - "FlowArn": { - "type": "string" - }, - "GatewayBridgeSource": { - "$ref": "#/definitions/GatewayBridgeSource" - }, - "IngestIp": { - "type": "string" - }, - "IngestPort": { - "type": "integer" - }, - "MaxBitrate": { - "type": "integer" - }, - "MaxLatency": { - "default": 2000, - "type": "integer" - }, - "MinLatency": { - "default": 2000, - "type": "integer" - }, - "Name": { - "type": "string" - }, - "Protocol": { - "enum": [ - "zixi-push", - "rtp-fec", - "rtp", - "rist", - "srt-listener", - "srt-caller" - ], - "type": "string" - }, - "SenderControlPort": { - "type": "integer" - }, - "SenderIpAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "SourceIngestPort": { - "type": "string" - }, - "SourceListenerAddress": { - "type": "string" - }, - "SourceListenerPort": { - "type": "integer" - }, - "StreamId": { - "type": "string" - }, - "VpcInterfaceName": { - "type": "string" - }, - "WhitelistCidr": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IngestIp", - "/properties/SourceArn", - "/properties/SourceIngestPort" - ], - "required": [ - "Name", - "Description" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "typeName": "AWS::MediaConnect::FlowSource" -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json similarity index 97% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-rds-dbcluster.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json index fc8608c49b..3355402afa 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json @@ -444,17 +444,6 @@ "/properties/StorageThroughput" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "tagging": { - "cloudFormationSystemTags": true, - "permissions": [ - "rds:AddTagsToResource", - "rds:RemoveTagsFromResource" - ], - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, "typeName": "AWS::RDS::DBCluster", "writeOnlyProperties": [ "/properties/DBInstanceParameterGroupName", 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 f6f11084f6..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-domain.json +++ /dev/null @@ -1,774 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "maxLength": 256, - "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", - "type": "string" - } - }, - "required": [ - "RepositoryUrl" - ], - "type": "object" - }, - "CustomFileSystemConfig": { - "additionalProperties": false, - "properties": { - "EFSFileSystemConfig": { - "$ref": "#/definitions/EFSFileSystemConfig" - } - }, - "type": "object" - }, - "CustomImage": { - "additionalProperties": false, - "properties": { - "AppImageConfigName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "CustomPosixUserConfig": { - "additionalProperties": false, - "properties": { - "Gid": { - "maximum": 4000000, - "minimum": 1001, - "type": "integer" - }, - "Uid": { - "maximum": 4000000, - "minimum": 10000, - "type": "integer" - } - }, - "required": [ - "Uid", - "Gid" - ], - "type": "object" - }, - "DefaultEbsStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "properties": { - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, - "DockerSettings": { - "additionalProperties": false, - "properties": { - "EnableDockerAccess": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "VpcOnlyTrustedAccounts": { - "insertionOrder": false, - "items": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "maxItems": 20, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "DomainSettings": { - "additionalProperties": false, - "properties": { - "DockerSettings": { - "$ref": "#/definitions/DockerSettings" - }, - "RStudioServerProDomainSettings": { - "$ref": "#/definitions/RStudioServerProDomainSettings" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 3, - "minItems": 1, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "EFSFileSystemConfig": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 21, - "minLength": 11, - "pattern": "^(fs-[0-9a-f]{8,})$", - "type": "string" - }, - "FileSystemPath": { - "maxLength": 256, - "minLength": 1, - "pattern": "^\\/\\S*$", - "type": "string" - } - }, - "required": [ - "FileSystemId" - ], - "type": "object" - }, - "JupyterLabAppSettings": { - "additionalProperties": false, - "properties": { - "CodeRepositories": { - "items": { - "$ref": "#/definitions/CodeRepository" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RSessionAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "properties": { - "AccessStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "RStudioServerProDomainSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "DomainExecutionRoleArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "RStudioConnectUrl": { - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - }, - "RStudioPackageManagerUrl": { - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - } - }, - "required": [ - "DomainExecutionRoleArn" - ], - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "enum": [ - "system", - "ml.t3.micro", - "ml.t3.small", - "ml.t3.medium", - "ml.t3.large", - "ml.t3.xlarge", - "ml.t3.2xlarge", - "ml.m5.large", - "ml.m5.xlarge", - "ml.m5.2xlarge", - "ml.m5.4xlarge", - "ml.m5.8xlarge", - "ml.m5.12xlarge", - "ml.m5.16xlarge", - "ml.m5.24xlarge", - "ml.c5.large", - "ml.c5.xlarge", - "ml.c5.2xlarge", - "ml.c5.4xlarge", - "ml.c5.9xlarge", - "ml.c5.12xlarge", - "ml.c5.18xlarge", - "ml.c5.24xlarge", - "ml.p3.2xlarge", - "ml.p3.8xlarge", - "ml.p3.16xlarge", - "ml.g4dn.xlarge", - "ml.g4dn.2xlarge", - "ml.g4dn.4xlarge", - "ml.g4dn.8xlarge", - "ml.g4dn.12xlarge", - "ml.g4dn.16xlarge", - "ml.r5.large", - "ml.r5.xlarge", - "ml.r5.2xlarge", - "ml.r5.4xlarge", - "ml.r5.8xlarge", - "ml.r5.12xlarge", - "ml.r5.16xlarge", - "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", - "ml.g5.xlarge", - "ml.g5.2xlarge", - "ml.g5.4xlarge", - "ml.g5.8xlarge", - "ml.g5.12xlarge", - "ml.g5.16xlarge", - "ml.g5.24xlarge", - "ml.g5.48xlarge", - "ml.p4d.24xlarge", - "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "type": "string" - }, - "LifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "SageMakerImageArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "type": "object" - }, - "SharingSettings": { - "additionalProperties": false, - "properties": { - "NotebookOutputOption": { - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "type": "object" - }, - "SpaceEbsVolumeSizeInGb": { - "maximum": 16384, - "minimum": 5, - "type": "integer" - }, - "StudioLifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UserSettings": { - "additionalProperties": false, - "properties": { - "CodeEditorAppSettings": { - "$ref": "#/definitions/CodeEditorAppSettings" - }, - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "DefaultLandingUri": { - "maxLength": 1023, - "type": "string" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "RSessionAppSettings": { - "$ref": "#/definitions/RSessionAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings" - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - }, - "StudioWebPortal": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:CreateDomain", - "sagemaker:DescribeDomain", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "efs:CreateFileSystem", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKeyWithoutPlainText" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteApp", - "sagemaker:DeleteDomain", - "sagemaker:DescribeDomain" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListDomains" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeDomain" - ] - }, - "update": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:UpdateDomain", - "sagemaker:DescribeDomain", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/DomainId" - ], - "properties": { - "AppNetworkAccessType": { - "enum": [ - "PublicInternetOnly", - "VpcOnly" - ], - "type": "string" - }, - "AppSecurityGroupManagement": { - "enum": [ - "Service", - "Customer" - ], - "type": "string" - }, - "AuthMode": { - "enum": [ - "SSO", - "IAM" - ], - "type": "string" - }, - "DefaultSpaceSettings": { - "$ref": "#/definitions/DefaultSpaceSettings" - }, - "DefaultUserSettings": { - "$ref": "#/definitions/UserSettings" - }, - "DomainArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", - "type": "string" - }, - "DomainId": { - "maxLength": 63, - "pattern": "^d-(-*[a-z0-9])+", - "type": "string" - }, - "DomainName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "DomainSettings": { - "$ref": "#/definitions/DomainSettings" - }, - "HomeEfsFileSystemId": { - "maxLength": 32, - "type": "string" - }, - "KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "SecurityGroupIdForDomainBoundary": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "SingleSignOnApplicationArn": { - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", - "type": "string" - }, - "SingleSignOnManagedApplicationInstanceId": { - "maxLength": 256, - "type": "string" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "Url": { - "maxLength": 1024, - "type": "string" - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/DomainArn", - "/properties/Url", - "/properties/DomainId", - "/properties/HomeEfsFileSystemId", - "/properties/SecurityGroupIdForDomainBoundary", - "/properties/SingleSignOnManagedApplicationInstanceId", - "/properties/SingleSignOnApplicationArn" - ], - "required": [ - "AuthMode", - "DefaultUserSettings", - "DomainName", - "SubnetIds", - "VpcId" - ], - "typeName": "AWS::SageMaker::Domain", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-mlflowtrackingserver.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-mlflowtrackingserver.json new file mode 100644 index 0000000000..84791991d5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-mlflowtrackingserver.json @@ -0,0 +1,152 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/MlflowVersion", + "/properties/RoleArn" + ], + "createOnlyProperties": [ + "/properties/TrackingServerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:AddTags", + "sagemaker:ListTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + }, + "delete": { + "permissions": [ + "sagemaker:DeleteMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer" + ], + "timeoutInMinutes": 65 + }, + "list": { + "permissions": [ + "sagemaker:ListMlflowTrackingServers" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + } + }, + "primaryIdentifier": [ + "/properties/TrackingServerName" + ], + "properties": { + "ArtifactStoreUri": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^s3:\\/\\/([^\\/]+)\\/?(.*)$", + "type": "string" + }, + "AutomaticModelRegistration": { + "type": "boolean" + }, + "MlflowVersion": { + "maxLength": 32, + "minLength": 1, + "pattern": "^\\d+(\\.\\d+)+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role\\/?[a-zA-Z_0-9+=,.@\\-_\\/]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TrackingServerArn": { + "maxLength": 2048, + "pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:mlflow-tracking-server/.*$", + "type": "string" + }, + "TrackingServerName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}$", + "type": "string" + }, + "TrackingServerSize": { + "enum": [ + "Small", + "Medium", + "Large" + ], + "type": "string" + }, + "WeeklyMaintenanceWindowStart": { + "maxLength": 9, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TrackingServerArn" + ], + "required": [ + "TrackingServerName", + "ArtifactStoreUri", + "RoleArn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::MlflowTrackingServer" +} 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 f7e1db12f6..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-sagemaker-userprofile.json +++ /dev/null @@ -1,535 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/SingleSignOnUserIdentifier", - "/properties/SingleSignOnUserValue", - "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", - "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", - "/properties/Tags" - ], - "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "maxLength": 256, - "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", - "type": "string" - } - }, - "required": [ - "RepositoryUrl" - ], - "type": "object" - }, - "CustomFileSystemConfig": { - "additionalProperties": false, - "properties": { - "EFSFileSystemConfig": { - "$ref": "#/definitions/EFSFileSystemConfig" - } - }, - "type": "object" - }, - "CustomImage": { - "additionalProperties": false, - "properties": { - "AppImageConfigName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "CustomPosixUserConfig": { - "additionalProperties": false, - "properties": { - "Gid": { - "maximum": 4000000, - "minimum": 1001, - "type": "integer" - }, - "Uid": { - "maximum": 4000000, - "minimum": 10000, - "type": "integer" - } - }, - "required": [ - "Uid", - "Gid" - ], - "type": "object" - }, - "DefaultEbsStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, - "EFSFileSystemConfig": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 21, - "minLength": 11, - "pattern": "^(fs-[0-9a-f]{8,})$", - "type": "string" - }, - "FileSystemPath": { - "maxLength": 256, - "minLength": 1, - "pattern": "^\\/\\S*$", - "type": "string" - } - }, - "required": [ - "FileSystemId" - ], - "type": "object" - }, - "JupyterLabAppSettings": { - "additionalProperties": false, - "properties": { - "CodeRepositories": { - "items": { - "$ref": "#/definitions/CodeRepository" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "properties": { - "AccessStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "enum": [ - "system", - "ml.t3.micro", - "ml.t3.small", - "ml.t3.medium", - "ml.t3.large", - "ml.t3.xlarge", - "ml.t3.2xlarge", - "ml.m5.large", - "ml.m5.xlarge", - "ml.m5.2xlarge", - "ml.m5.4xlarge", - "ml.m5.8xlarge", - "ml.m5.12xlarge", - "ml.m5.16xlarge", - "ml.m5.24xlarge", - "ml.c5.large", - "ml.c5.xlarge", - "ml.c5.2xlarge", - "ml.c5.4xlarge", - "ml.c5.9xlarge", - "ml.c5.12xlarge", - "ml.c5.18xlarge", - "ml.c5.24xlarge", - "ml.p3.2xlarge", - "ml.p3.8xlarge", - "ml.p3.16xlarge", - "ml.g4dn.xlarge", - "ml.g4dn.2xlarge", - "ml.g4dn.4xlarge", - "ml.g4dn.8xlarge", - "ml.g4dn.12xlarge", - "ml.g4dn.16xlarge", - "ml.r5.large", - "ml.r5.xlarge", - "ml.r5.2xlarge", - "ml.r5.4xlarge", - "ml.r5.8xlarge", - "ml.r5.12xlarge", - "ml.r5.16xlarge", - "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", - "ml.g5.xlarge", - "ml.g5.2xlarge", - "ml.g5.4xlarge", - "ml.g5.8xlarge", - "ml.g5.12xlarge", - "ml.g5.16xlarge", - "ml.g5.24xlarge", - "ml.g5.48xlarge", - "ml.p4d.24xlarge", - "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "type": "string" - }, - "SageMakerImageArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "type": "object" - }, - "SharingSettings": { - "additionalProperties": false, - "properties": { - "NotebookOutputOption": { - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "type": "object" - }, - "SpaceEbsVolumeSizeInGb": { - "maximum": 16384, - "minimum": 5, - "type": "integer" - }, - "StudioLifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UserSettings": { - "additionalProperties": false, - "properties": { - "CodeEditorAppSettings": { - "$ref": "#/definitions/CodeEditorAppSettings" - }, - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "DefaultLandingUri": { - "maxLength": 1023, - "type": "string" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings" - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - }, - "StudioWebPortal": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateUserProfile", - "sagemaker:DescribeUserProfile", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteUserProfile", - "sagemaker:DescribeUserProfile" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListUserProfiles" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeUserProfile" - ] - }, - "update": { - "permissions": [ - "sagemaker:UpdateUserProfile", - "sagemaker:DescribeUserProfile", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/UserProfileName", - "/properties/DomainId" - ], - "properties": { - "DomainId": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "SingleSignOnUserIdentifier": { - "pattern": "UserName", - "type": "string" - }, - "SingleSignOnUserValue": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", - "type": "string" - }, - "UserProfileName": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "UserSettings": { - "$ref": "#/definitions/UserSettings", - "maxItems": 50, - "minItems": 0, - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/UserProfileArn" - ], - "required": [ - "DomainId", - "UserProfileName" - ], - "typeName": "AWS::SageMaker::UserProfile", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-sso-instance.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-sso-instance.json deleted file mode 100644 index 26c2ca063a..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-sso-instance.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "[\\w+=,.@-]+", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[\\w+=,.@-]+", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sso:CreateInstance", - "sso:DescribeInstance", - "sso:TagResource", - "iam:CreateServiceLinkedRole", - "sso:TagInstance", - "sso:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "sso:DeleteInstance" - ] - }, - "list": { - "permissions": [ - "sso:ListInstances" - ] - }, - "read": { - "permissions": [ - "sso:DescribeInstance", - "sso:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "sso:UpdateInstance", - "sso:TagResource", - "sso:UntagResource", - "sso:ListTagsForResource", - "sso:TagInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/InstanceArn" - ], - "properties": { - "IdentityStoreId": { - "maxLength": 64, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "InstanceArn": { - "maxLength": 1224, - "minLength": 10, - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$", - "type": "string" - }, - "Name": { - "maxLength": 32, - "minLength": 1, - "pattern": "^[\\w+=,.@-]+$", - "type": "string" - }, - "OwnerAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d{12}?$", - "type": "string" - }, - "Status": { - "enum": [ - "CREATE_IN_PROGRESS", - "DELETE_IN_PROGRESS", - "ACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 75, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/InstanceArn", - "/properties/OwnerAccountId", - "/properties/IdentityStoreId", - "/properties/Status" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sso/aws-sso-instance", - "tagging": { - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SSO::Instance" -} 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 8dfab0dfdd..ba398ef6bd 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -689,6 +689,7 @@ "AWS::SageMaker::Image", "AWS::SageMaker::ImageVersion", "AWS::SageMaker::InferenceExperiment", + "AWS::SageMaker::MlflowTrackingServer", "AWS::SageMaker::Model", "AWS::SageMaker::ModelBiasJobDefinition", "AWS::SageMaker::ModelCard", @@ -937,6 +938,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codebuild-project.json", @@ -1272,7 +1274,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1319,7 +1320,6 @@ "aws-msk-configuration.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", @@ -1357,7 +1357,6 @@ "aws-pipes-pipe.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-lambda-alias.json similarity index 51% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-lambda-alias.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-lambda-alias.json index e952d8b59e..4a291518b6 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-lambda-alias.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-lambda-alias.json @@ -9,7 +9,6 @@ "additionalProperties": false, "properties": { "AdditionalVersionWeights": { - "insertionOrder": false, "items": { "$ref": "#/definitions/VersionWeight" }, @@ -17,6 +16,9 @@ "uniqueItems": true } }, + "required": [ + "AdditionalVersionWeights" + ], "type": "object" }, "ProvisionedConcurrencyConfiguration": { @@ -48,65 +50,10 @@ "type": "object" } }, - "handlers": { - "create": { - "permissions": [ - "lambda:CreateAlias", - "lambda:PutProvisionedConcurrencyConfig", - "lambda:GetProvisionedConcurrencyConfig" - ], - "timeoutInMinutes": 45 - }, - "delete": { - "permissions": [ - "lambda:DeleteAlias", - "lambda:GetAlias" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "FunctionName": { - "$ref": "resource-schema.json#/properties/FunctionName" - } - }, - "required": [ - "FunctionName" - ] - }, - "permissions": [ - "lambda:ListAliases" - ] - }, - "read": { - "permissions": [ - "lambda:GetAlias", - "lambda:GetProvisionedConcurrencyConfig" - ] - }, - "update": { - "permissions": [ - "lambda:UpdateAlias", - "lambda:GetAlias", - "lambda:PutProvisionedConcurrencyConfig", - "lambda:DeleteProvisionedConcurrencyConfig", - "lambda:GetProvisionedConcurrencyConfig", - "codedeploy:CreateDeployment", - "codedeploy:GetDeployment", - "codedeploy:GetDeploymentGroup", - "codedeploy:GetDeploymentConfig", - "codedeploy:StopDeployment" - ], - "timeoutInMinutes": 120 - } - }, "primaryIdentifier": [ - "/properties/AliasArn" + "/properties/Id" ], "properties": { - "AliasArn": { - "type": "string" - }, "Description": { "type": "string" }, @@ -116,6 +63,9 @@ "FunctionVersion": { "type": "string" }, + "Id": { + "type": "string" + }, "Name": { "type": "string" }, @@ -126,20 +76,13 @@ "$ref": "#/definitions/AliasRoutingConfiguration" } }, - "propertyTransform": { - "/properties/FunctionName": "$split(FunctionName, \":\")[-1] $OR FunctionName" - }, "readOnlyProperties": [ - "/properties/AliasArn" + "/properties/Id" ], "required": [ "FunctionName", "FunctionVersion", "Name" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-lambda", - "tagging": { - "taggable": false - }, "typeName": "AWS::Lambda::Alias" } diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_east_1/aws-sagemaker-mlflowtrackingserver.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-mlflowtrackingserver.json new file mode 100644 index 0000000000..84791991d5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-sagemaker-mlflowtrackingserver.json @@ -0,0 +1,152 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/MlflowVersion", + "/properties/RoleArn" + ], + "createOnlyProperties": [ + "/properties/TrackingServerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:AddTags", + "sagemaker:ListTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + }, + "delete": { + "permissions": [ + "sagemaker:DeleteMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer" + ], + "timeoutInMinutes": 65 + }, + "list": { + "permissions": [ + "sagemaker:ListMlflowTrackingServers" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + } + }, + "primaryIdentifier": [ + "/properties/TrackingServerName" + ], + "properties": { + "ArtifactStoreUri": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^s3:\\/\\/([^\\/]+)\\/?(.*)$", + "type": "string" + }, + "AutomaticModelRegistration": { + "type": "boolean" + }, + "MlflowVersion": { + "maxLength": 32, + "minLength": 1, + "pattern": "^\\d+(\\.\\d+)+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role\\/?[a-zA-Z_0-9+=,.@\\-_\\/]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TrackingServerArn": { + "maxLength": 2048, + "pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:mlflow-tracking-server/.*$", + "type": "string" + }, + "TrackingServerName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}$", + "type": "string" + }, + "TrackingServerSize": { + "enum": [ + "Small", + "Medium", + "Large" + ], + "type": "string" + }, + "WeeklyMaintenanceWindowStart": { + "maxLength": 9, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TrackingServerArn" + ], + "required": [ + "TrackingServerName", + "ArtifactStoreUri", + "RoleArn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::MlflowTrackingServer" +} 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 ad9046c959..1b33719c56 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -1069,6 +1069,7 @@ "AWS::SageMaker::ImageVersion", "AWS::SageMaker::InferenceComponent", "AWS::SageMaker::InferenceExperiment", + "AWS::SageMaker::MlflowTrackingServer", "AWS::SageMaker::Model", "AWS::SageMaker::ModelBiasJobDefinition", "AWS::SageMaker::ModelCard", @@ -1484,6 +1485,7 @@ "aws-connect-view.json", "aws-connect-viewversion.json", "aws-controltower-enabledbaseline.json", + "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-customerprofiles-calculatedattributedefinition.json", "aws-customerprofiles-domain.json", @@ -2034,7 +2036,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-neptunegraph-graph.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-mlflowtrackingserver.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-mlflowtrackingserver.json new file mode 100644 index 0000000000..84791991d5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-sagemaker-mlflowtrackingserver.json @@ -0,0 +1,152 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/MlflowVersion", + "/properties/RoleArn" + ], + "createOnlyProperties": [ + "/properties/TrackingServerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:AddTags", + "sagemaker:ListTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + }, + "delete": { + "permissions": [ + "sagemaker:DeleteMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer" + ], + "timeoutInMinutes": 65 + }, + "list": { + "permissions": [ + "sagemaker:ListMlflowTrackingServers" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + } + }, + "primaryIdentifier": [ + "/properties/TrackingServerName" + ], + "properties": { + "ArtifactStoreUri": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^s3:\\/\\/([^\\/]+)\\/?(.*)$", + "type": "string" + }, + "AutomaticModelRegistration": { + "type": "boolean" + }, + "MlflowVersion": { + "maxLength": 32, + "minLength": 1, + "pattern": "^\\d+(\\.\\d+)+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role\\/?[a-zA-Z_0-9+=,.@\\-_\\/]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TrackingServerArn": { + "maxLength": 2048, + "pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:mlflow-tracking-server/.*$", + "type": "string" + }, + "TrackingServerName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}$", + "type": "string" + }, + "TrackingServerSize": { + "enum": [ + "Small", + "Medium", + "Large" + ], + "type": "string" + }, + "WeeklyMaintenanceWindowStart": { + "maxLength": 9, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TrackingServerArn" + ], + "required": [ + "TrackingServerName", + "ArtifactStoreUri", + "RoleArn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::MlflowTrackingServer" +} 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 23a54b351d..7c19b9e2ef 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -1290,6 +1290,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codebuild-project.json", @@ -1319,6 +1320,7 @@ "aws-cognito-userpoolidentityprovider.json", "aws-cognito-userpoolresourceserver.json", "aws-cognito-userpoolriskconfigurationattachment.json", + "aws-cognito-userpooluicustomizationattachment.json", "aws-cognito-userpooluser.json", "aws-cognito-userpoolusertogroupattachment.json", "aws-comprehend-documentclassifier.json", @@ -1356,7 +1358,6 @@ "aws-connect-view.json", "aws-connect-viewversion.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-customerprofiles-calculatedattributedefinition.json", "aws-customerprofiles-domain.json", @@ -1477,7 +1478,6 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", @@ -1656,6 +1656,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -1762,7 +1763,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1817,6 +1817,7 @@ "aws-mediaconnect-flow.json", "aws-mediaconnect-flowentitlement.json", "aws-mediaconnect-flowoutput.json", + "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", "aws-mediaconnect-gateway.json", "aws-mediaconvert-jobtemplate.json", @@ -1856,7 +1857,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", @@ -1934,7 +1934,6 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cognito-userpooluicustomizationattachment.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cognito-userpooluicustomizationattachment.json deleted file mode 100644 index 009f1aea8c..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-cognito-userpooluicustomizationattachment.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/UserPoolId", - "/properties/ClientId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CSS": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "UserPoolId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ClientId", - "UserPoolId" - ], - "typeName": "AWS::Cognito::UserPoolUICustomizationAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-controltower-enabledcontrol.json similarity index 98% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-controltower-enabledcontrol.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-controltower-enabledcontrol.json index 8f0be9c61f..cae81c46bc 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-controltower-enabledcontrol.json @@ -78,8 +78,6 @@ }, "delete": { "permissions": [ - "controltower:ListEnabledControls", - "controltower:GetEnabledControl", "controltower:GetControlOperation", "controltower:DisableControl", "organizations:UpdatePolicy", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-lambda-alias.json similarity index 51% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-lambda-alias.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-lambda-alias.json index e952d8b59e..4a291518b6 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-lambda-alias.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-lambda-alias.json @@ -9,7 +9,6 @@ "additionalProperties": false, "properties": { "AdditionalVersionWeights": { - "insertionOrder": false, "items": { "$ref": "#/definitions/VersionWeight" }, @@ -17,6 +16,9 @@ "uniqueItems": true } }, + "required": [ + "AdditionalVersionWeights" + ], "type": "object" }, "ProvisionedConcurrencyConfiguration": { @@ -48,65 +50,10 @@ "type": "object" } }, - "handlers": { - "create": { - "permissions": [ - "lambda:CreateAlias", - "lambda:PutProvisionedConcurrencyConfig", - "lambda:GetProvisionedConcurrencyConfig" - ], - "timeoutInMinutes": 45 - }, - "delete": { - "permissions": [ - "lambda:DeleteAlias", - "lambda:GetAlias" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "FunctionName": { - "$ref": "resource-schema.json#/properties/FunctionName" - } - }, - "required": [ - "FunctionName" - ] - }, - "permissions": [ - "lambda:ListAliases" - ] - }, - "read": { - "permissions": [ - "lambda:GetAlias", - "lambda:GetProvisionedConcurrencyConfig" - ] - }, - "update": { - "permissions": [ - "lambda:UpdateAlias", - "lambda:GetAlias", - "lambda:PutProvisionedConcurrencyConfig", - "lambda:DeleteProvisionedConcurrencyConfig", - "lambda:GetProvisionedConcurrencyConfig", - "codedeploy:CreateDeployment", - "codedeploy:GetDeployment", - "codedeploy:GetDeploymentGroup", - "codedeploy:GetDeploymentConfig", - "codedeploy:StopDeployment" - ], - "timeoutInMinutes": 120 - } - }, "primaryIdentifier": [ - "/properties/AliasArn" + "/properties/Id" ], "properties": { - "AliasArn": { - "type": "string" - }, "Description": { "type": "string" }, @@ -116,6 +63,9 @@ "FunctionVersion": { "type": "string" }, + "Id": { + "type": "string" + }, "Name": { "type": "string" }, @@ -126,20 +76,13 @@ "$ref": "#/definitions/AliasRoutingConfiguration" } }, - "propertyTransform": { - "/properties/FunctionName": "$split(FunctionName, \":\")[-1] $OR FunctionName" - }, "readOnlyProperties": [ - "/properties/AliasArn" + "/properties/Id" ], "required": [ "FunctionName", "FunctionVersion", "Name" ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-lambda", - "tagging": { - "taggable": false - }, "typeName": "AWS::Lambda::Alias" } diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-mediaconnect-flowsource.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-mediaconnect-flowsource.json deleted file mode 100644 index cf7d326061..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-mediaconnect-flowsource.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "Encryption": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "enum": [ - "aes128", - "aes192", - "aes256" - ], - "type": "string" - }, - "ConstantInitializationVector": { - "type": "string" - }, - "DeviceId": { - "type": "string" - }, - "KeyType": { - "default": "static-key", - "enum": [ - "speke", - "static-key", - "srt-password" - ], - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceId": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecretArn": { - "type": "string" - }, - "Url": { - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "GatewayBridgeSource": { - "additionalProperties": false, - "properties": { - "BridgeArn": { - "type": "string" - }, - "VpcInterfaceAttachment": { - "$ref": "#/definitions/VpcInterfaceAttachment" - } - }, - "required": [ - "BridgeArn" - ], - "type": "object" - }, - "VpcInterfaceAttachment": { - "additionalProperties": false, - "properties": { - "VpcInterfaceName": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "mediaconnect:CreateFlow", - "mediaconnect:DescribeFlow", - "mediaconnect:AddFlowSources", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:RemoveFlowSource" - ] - }, - "list": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "update": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:UpdateFlowSource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SourceArn" - ], - "properties": { - "Decryption": { - "$ref": "#/definitions/Encryption" - }, - "Description": { - "type": "string" - }, - "EntitlementArn": { - "type": "string" - }, - "FlowArn": { - "type": "string" - }, - "GatewayBridgeSource": { - "$ref": "#/definitions/GatewayBridgeSource" - }, - "IngestIp": { - "type": "string" - }, - "IngestPort": { - "type": "integer" - }, - "MaxBitrate": { - "type": "integer" - }, - "MaxLatency": { - "default": 2000, - "type": "integer" - }, - "MinLatency": { - "default": 2000, - "type": "integer" - }, - "Name": { - "type": "string" - }, - "Protocol": { - "enum": [ - "zixi-push", - "rtp-fec", - "rtp", - "rist", - "srt-listener", - "srt-caller" - ], - "type": "string" - }, - "SenderControlPort": { - "type": "integer" - }, - "SenderIpAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "SourceIngestPort": { - "type": "string" - }, - "SourceListenerAddress": { - "type": "string" - }, - "SourceListenerPort": { - "type": "integer" - }, - "StreamId": { - "type": "string" - }, - "VpcInterfaceName": { - "type": "string" - }, - "WhitelistCidr": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IngestIp", - "/properties/SourceArn", - "/properties/SourceIngestPort" - ], - "required": [ - "Name", - "Description" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "typeName": "AWS::MediaConnect::FlowSource" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_northeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py index 994ad7c023..3eee0f2648 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -1143,6 +1143,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -1182,7 +1183,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", @@ -1215,6 +1215,7 @@ "aws-mediaconnect-flow.json", "aws-mediaconnect-flowentitlement.json", "aws-mediaconnect-flowoutput.json", + "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", "aws-mediaconnect-gateway.json", "aws-medialive-multiplex.json", @@ -1241,7 +1242,6 @@ "aws-msk-configuration.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", @@ -1287,7 +1287,6 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1453,6 +1452,8 @@ "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", + "aws-stepfunctions-activity.json", + "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", "aws-synthetics-canary.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-mediaconnect-flowsource.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-mediaconnect-flowsource.json deleted file mode 100644 index cf7d326061..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-mediaconnect-flowsource.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "Encryption": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "enum": [ - "aes128", - "aes192", - "aes256" - ], - "type": "string" - }, - "ConstantInitializationVector": { - "type": "string" - }, - "DeviceId": { - "type": "string" - }, - "KeyType": { - "default": "static-key", - "enum": [ - "speke", - "static-key", - "srt-password" - ], - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceId": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecretArn": { - "type": "string" - }, - "Url": { - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "GatewayBridgeSource": { - "additionalProperties": false, - "properties": { - "BridgeArn": { - "type": "string" - }, - "VpcInterfaceAttachment": { - "$ref": "#/definitions/VpcInterfaceAttachment" - } - }, - "required": [ - "BridgeArn" - ], - "type": "object" - }, - "VpcInterfaceAttachment": { - "additionalProperties": false, - "properties": { - "VpcInterfaceName": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "mediaconnect:CreateFlow", - "mediaconnect:DescribeFlow", - "mediaconnect:AddFlowSources", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:RemoveFlowSource" - ] - }, - "list": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "update": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:UpdateFlowSource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SourceArn" - ], - "properties": { - "Decryption": { - "$ref": "#/definitions/Encryption" - }, - "Description": { - "type": "string" - }, - "EntitlementArn": { - "type": "string" - }, - "FlowArn": { - "type": "string" - }, - "GatewayBridgeSource": { - "$ref": "#/definitions/GatewayBridgeSource" - }, - "IngestIp": { - "type": "string" - }, - "IngestPort": { - "type": "integer" - }, - "MaxBitrate": { - "type": "integer" - }, - "MaxLatency": { - "default": 2000, - "type": "integer" - }, - "MinLatency": { - "default": 2000, - "type": "integer" - }, - "Name": { - "type": "string" - }, - "Protocol": { - "enum": [ - "zixi-push", - "rtp-fec", - "rtp", - "rist", - "srt-listener", - "srt-caller" - ], - "type": "string" - }, - "SenderControlPort": { - "type": "integer" - }, - "SenderIpAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "SourceIngestPort": { - "type": "string" - }, - "SourceListenerAddress": { - "type": "string" - }, - "SourceListenerPort": { - "type": "integer" - }, - "StreamId": { - "type": "string" - }, - "VpcInterfaceName": { - "type": "string" - }, - "WhitelistCidr": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IngestIp", - "/properties/SourceArn", - "/properties/SourceIngestPort" - ], - "required": [ - "Name", - "Description" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "typeName": "AWS::MediaConnect::FlowSource" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_northeast_3/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "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" - } - }, - "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_northeast_3/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "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::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 2425a40ee7..5e4592095c 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -1475,7 +1475,6 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", @@ -1854,7 +1853,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", @@ -1942,7 +1940,6 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -2132,6 +2129,7 @@ "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-statemachinealias.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_1/aws-sso-instance.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-sso-instance.json deleted file mode 100644 index 26c2ca063a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-sso-instance.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "[\\w+=,.@-]+", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[\\w+=,.@-]+", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sso:CreateInstance", - "sso:DescribeInstance", - "sso:TagResource", - "iam:CreateServiceLinkedRole", - "sso:TagInstance", - "sso:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "sso:DeleteInstance" - ] - }, - "list": { - "permissions": [ - "sso:ListInstances" - ] - }, - "read": { - "permissions": [ - "sso:DescribeInstance", - "sso:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "sso:UpdateInstance", - "sso:TagResource", - "sso:UntagResource", - "sso:ListTagsForResource", - "sso:TagInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/InstanceArn" - ], - "properties": { - "IdentityStoreId": { - "maxLength": 64, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "InstanceArn": { - "maxLength": 1224, - "minLength": 10, - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$", - "type": "string" - }, - "Name": { - "maxLength": 32, - "minLength": 1, - "pattern": "^[\\w+=,.@-]+$", - "type": "string" - }, - "OwnerAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d{12}?$", - "type": "string" - }, - "Status": { - "enum": [ - "CREATE_IN_PROGRESS", - "DELETE_IN_PROGRESS", - "ACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 75, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/InstanceArn", - "/properties/OwnerAccountId", - "/properties/IdentityStoreId", - "/properties/Status" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sso/aws-sso-instance", - "tagging": { - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SSO::Instance" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py index 1cf1783229..c9b0928dda 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -537,6 +537,7 @@ "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", + "AWS::SSO::Instance", "AWS::SSO::InstanceAccessControlAttributeConfiguration", "AWS::SSO::PermissionSet", "AWS::SageMaker::ModelCard", @@ -715,6 +716,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-codebuild-project.json", "aws-codebuild-reportgroup.json", @@ -741,7 +743,6 @@ "aws-config-organizationconfigrule.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -919,6 +920,7 @@ "aws-guardduty-threatintelset.json", "aws-iam-group.json", "aws-iam-grouppolicy.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -952,7 +954,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", @@ -1016,7 +1017,6 @@ "aws-pipes-pipe.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1127,6 +1127,7 @@ "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-statemachinealias.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-controltower-enabledcontrol.json similarity index 98% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-controltower-enabledcontrol.json rename to src/cfnlint/data/schemas/providers/ap_south_2/aws-controltower-enabledcontrol.json index 8f0be9c61f..cae81c46bc 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-controltower-enabledcontrol.json @@ -78,8 +78,6 @@ }, "delete": { "permissions": [ - "controltower:ListEnabledControls", - "controltower:GetEnabledControl", "controltower:GetControlOperation", "controltower:DisableControl", "organizations:UpdatePolicy", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} 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..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py index 725adda6a3..bc8f45a6e3 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -1584,7 +1584,6 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", @@ -1974,7 +1973,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-neptunegraph-graph.json", @@ -2271,6 +2269,7 @@ "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-statemachinealias.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-gammadilithium-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-gammadilithium-jobdefinition.json index 2917648238..780b18237c 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-gammadilithium-jobdefinition.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-gammadilithium-jobdefinition.json @@ -612,6 +612,9 @@ "EcsProperties": { "$ref": "#/definitions/EcsProperties" }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, "InstanceTypes": { "items": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sso-instance.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sso-instance.json deleted file mode 100644 index 26c2ca063a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-sso-instance.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "[\\w+=,.@-]+", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[\\w+=,.@-]+", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sso:CreateInstance", - "sso:DescribeInstance", - "sso:TagResource", - "iam:CreateServiceLinkedRole", - "sso:TagInstance", - "sso:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "sso:DeleteInstance" - ] - }, - "list": { - "permissions": [ - "sso:ListInstances" - ] - }, - "read": { - "permissions": [ - "sso:DescribeInstance", - "sso:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "sso:UpdateInstance", - "sso:TagResource", - "sso:UntagResource", - "sso:ListTagsForResource", - "sso:TagInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/InstanceArn" - ], - "properties": { - "IdentityStoreId": { - "maxLength": 64, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "InstanceArn": { - "maxLength": 1224, - "minLength": 10, - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$", - "type": "string" - }, - "Name": { - "maxLength": 32, - "minLength": 1, - "pattern": "^[\\w+=,.@-]+$", - "type": "string" - }, - "OwnerAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d{12}?$", - "type": "string" - }, - "Status": { - "enum": [ - "CREATE_IN_PROGRESS", - "DELETE_IN_PROGRESS", - "ACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 75, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/InstanceArn", - "/properties/OwnerAccountId", - "/properties/IdentityStoreId", - "/properties/Status" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sso/aws-sso-instance", - "tagging": { - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SSO::Instance" -} 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 36a235fd9c..6ece2fb6d2 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -1064,6 +1064,7 @@ "AWS::SageMaker::ImageVersion", "AWS::SageMaker::InferenceComponent", "AWS::SageMaker::InferenceExperiment", + "AWS::SageMaker::MlflowTrackingServer", "AWS::SageMaker::Model", "AWS::SageMaker::ModelBiasJobDefinition", "AWS::SageMaker::ModelCard", @@ -2019,7 +2020,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-mlflowtrackingserver.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-mlflowtrackingserver.json new file mode 100644 index 0000000000..84791991d5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-sagemaker-mlflowtrackingserver.json @@ -0,0 +1,152 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/MlflowVersion", + "/properties/RoleArn" + ], + "createOnlyProperties": [ + "/properties/TrackingServerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:AddTags", + "sagemaker:ListTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + }, + "delete": { + "permissions": [ + "sagemaker:DeleteMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer" + ], + "timeoutInMinutes": 65 + }, + "list": { + "permissions": [ + "sagemaker:ListMlflowTrackingServers" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + } + }, + "primaryIdentifier": [ + "/properties/TrackingServerName" + ], + "properties": { + "ArtifactStoreUri": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^s3:\\/\\/([^\\/]+)\\/?(.*)$", + "type": "string" + }, + "AutomaticModelRegistration": { + "type": "boolean" + }, + "MlflowVersion": { + "maxLength": 32, + "minLength": 1, + "pattern": "^\\d+(\\.\\d+)+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role\\/?[a-zA-Z_0-9+=,.@\\-_\\/]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TrackingServerArn": { + "maxLength": 2048, + "pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:mlflow-tracking-server/.*$", + "type": "string" + }, + "TrackingServerName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}$", + "type": "string" + }, + "TrackingServerSize": { + "enum": [ + "Small", + "Medium", + "Large" + ], + "type": "string" + }, + "WeeklyMaintenanceWindowStart": { + "maxLength": 9, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TrackingServerArn" + ], + "required": [ + "TrackingServerName", + "ArtifactStoreUri", + "RoleArn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::MlflowTrackingServer" +} 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 e55c45e4fe..fae78f5765 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -746,6 +746,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codedeploy-application.json", @@ -772,7 +773,6 @@ "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -985,7 +985,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-layerversion.json", @@ -1059,7 +1058,6 @@ "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1187,6 +1185,7 @@ "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-statemachinealias.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-controltower-enabledcontrol.json similarity index 98% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-controltower-enabledcontrol.json rename to src/cfnlint/data/schemas/providers/ap_southeast_3/aws-controltower-enabledcontrol.json index 8f0be9c61f..cae81c46bc 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-controltower-enabledcontrol.json @@ -78,8 +78,6 @@ }, "delete": { "permissions": [ - "controltower:ListEnabledControls", - "controltower:GetEnabledControl", "controltower:GetControlOperation", "controltower:DisableControl", "organizations:UpdatePolicy", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_3/aws-sso-instance.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sso-instance.json deleted file mode 100644 index 26c2ca063a..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-sso-instance.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "[\\w+=,.@-]+", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[\\w+=,.@-]+", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sso:CreateInstance", - "sso:DescribeInstance", - "sso:TagResource", - "iam:CreateServiceLinkedRole", - "sso:TagInstance", - "sso:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "sso:DeleteInstance" - ] - }, - "list": { - "permissions": [ - "sso:ListInstances" - ] - }, - "read": { - "permissions": [ - "sso:DescribeInstance", - "sso:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "sso:UpdateInstance", - "sso:TagResource", - "sso:UntagResource", - "sso:ListTagsForResource", - "sso:TagInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/InstanceArn" - ], - "properties": { - "IdentityStoreId": { - "maxLength": 64, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "InstanceArn": { - "maxLength": 1224, - "minLength": 10, - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$", - "type": "string" - }, - "Name": { - "maxLength": 32, - "minLength": 1, - "pattern": "^[\\w+=,.@-]+$", - "type": "string" - }, - "OwnerAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d{12}?$", - "type": "string" - }, - "Status": { - "enum": [ - "CREATE_IN_PROGRESS", - "DELETE_IN_PROGRESS", - "ACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 75, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/InstanceArn", - "/properties/OwnerAccountId", - "/properties/IdentityStoreId", - "/properties/Status" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sso/aws-sso-instance", - "tagging": { - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SSO::Instance" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py index c7fa799460..1a4b4d89f1 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -517,6 +517,7 @@ "AWS::SSM::PatchBaseline", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", + "AWS::SSO::Instance", "AWS::SSO::InstanceAccessControlAttributeConfiguration", "AWS::SSO::PermissionSet", "AWS::SageMaker::ModelCard", @@ -681,6 +682,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codedeploy-application.json", @@ -706,7 +708,6 @@ "aws-config-organizationconformancepack.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -866,6 +867,7 @@ "aws-guardduty-threatintelset.json", "aws-iam-group.json", "aws-iam-grouppolicy.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -900,7 +902,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", @@ -973,7 +974,6 @@ "aws-pcaconnectorad-template.json", "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-ram-permission.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1082,6 +1082,7 @@ "aws-ssm-patchbaseline.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-statemachinealias.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} 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..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} 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..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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/ca_central_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py index b27889c079..a87fc81271 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -1441,7 +1441,6 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", @@ -1593,6 +1592,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -1681,7 +1681,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1739,6 +1738,7 @@ "aws-mediaconnect-flow.json", "aws-mediaconnect-flowentitlement.json", "aws-mediaconnect-flowoutput.json", + "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", "aws-mediaconnect-gateway.json", "aws-mediaconvert-jobtemplate.json", @@ -1775,7 +1775,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbclusterparametergroup.json", "aws-neptune-dbinstance.json", "aws-neptune-dbparametergroup.json", @@ -1869,7 +1868,6 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -2063,6 +2061,8 @@ "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", + "aws-stepfunctions-activity.json", + "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", "aws-supportapp-accountalias.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-mediaconnect-flowsource.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-mediaconnect-flowsource.json deleted file mode 100644 index cf7d326061..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-mediaconnect-flowsource.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "Encryption": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "enum": [ - "aes128", - "aes192", - "aes256" - ], - "type": "string" - }, - "ConstantInitializationVector": { - "type": "string" - }, - "DeviceId": { - "type": "string" - }, - "KeyType": { - "default": "static-key", - "enum": [ - "speke", - "static-key", - "srt-password" - ], - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceId": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecretArn": { - "type": "string" - }, - "Url": { - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "GatewayBridgeSource": { - "additionalProperties": false, - "properties": { - "BridgeArn": { - "type": "string" - }, - "VpcInterfaceAttachment": { - "$ref": "#/definitions/VpcInterfaceAttachment" - } - }, - "required": [ - "BridgeArn" - ], - "type": "object" - }, - "VpcInterfaceAttachment": { - "additionalProperties": false, - "properties": { - "VpcInterfaceName": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "mediaconnect:CreateFlow", - "mediaconnect:DescribeFlow", - "mediaconnect:AddFlowSources", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:RemoveFlowSource" - ] - }, - "list": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "update": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:UpdateFlowSource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SourceArn" - ], - "properties": { - "Decryption": { - "$ref": "#/definitions/Encryption" - }, - "Description": { - "type": "string" - }, - "EntitlementArn": { - "type": "string" - }, - "FlowArn": { - "type": "string" - }, - "GatewayBridgeSource": { - "$ref": "#/definitions/GatewayBridgeSource" - }, - "IngestIp": { - "type": "string" - }, - "IngestPort": { - "type": "integer" - }, - "MaxBitrate": { - "type": "integer" - }, - "MaxLatency": { - "default": 2000, - "type": "integer" - }, - "MinLatency": { - "default": 2000, - "type": "integer" - }, - "Name": { - "type": "string" - }, - "Protocol": { - "enum": [ - "zixi-push", - "rtp-fec", - "rtp", - "rist", - "srt-listener", - "srt-caller" - ], - "type": "string" - }, - "SenderControlPort": { - "type": "integer" - }, - "SenderIpAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "SourceIngestPort": { - "type": "string" - }, - "SourceListenerAddress": { - "type": "string" - }, - "SourceListenerPort": { - "type": "integer" - }, - "StreamId": { - "type": "string" - }, - "VpcInterfaceName": { - "type": "string" - }, - "WhitelistCidr": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IngestIp", - "/properties/SourceArn", - "/properties/SourceIngestPort" - ], - "required": [ - "Name", - "Description" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "typeName": "AWS::MediaConnect::FlowSource" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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/ca_central_1/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "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" - } - }, - "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_central_1/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "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::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py index 9a881d8544..fb23576303 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -111,6 +111,9 @@ "AWS::CodeDeploy::DeploymentGroup", "AWS::CodePipeline::CustomActionType", "AWS::CodePipeline::Pipeline", + "AWS::Cognito::IdentityPool", + "AWS::Cognito::IdentityPoolPrincipalTag", + "AWS::Cognito::IdentityPoolRoleAttachment", "AWS::Cognito::LogDeliveryConfiguration", "AWS::Cognito::UserPool", "AWS::Cognito::UserPoolClient", @@ -602,11 +605,15 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codedeploy-application.json", "aws-codedeploy-deploymentconfig.json", "aws-codedeploy-deploymentgroup.json", + "aws-cognito-identitypool.json", + "aws-cognito-identitypoolprincipaltag.json", + "aws-cognito-identitypoolroleattachment.json", "aws-cognito-logdeliveryconfiguration.json", "aws-cognito-userpool.json", "aws-cognito-userpoolclient.json", @@ -622,7 +629,6 @@ "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -773,6 +779,7 @@ "aws-guardduty-threatintelset.json", "aws-iam-grouppolicy.json", "aws-iam-managedpolicy.json", + "aws-iam-oidcprovider.json", "aws-iam-rolepolicy.json", "aws-iam-samlprovider.json", "aws-iam-servercertificate.json", @@ -802,7 +809,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-layerversion.json", @@ -845,7 +851,6 @@ "aws-organizations-resourcepolicy.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} 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..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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/cn_north_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py index c4e580deed..88e4df99c4 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -1131,6 +1131,7 @@ "aws-lakeformation-principalpermissions.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", @@ -1174,7 +1175,6 @@ "aws-opsworks-userprofile.json", "aws-opsworks-volume.json", "aws-organizations-account.json", - "aws-organizations-organization.json", "aws-organizations-organizationalunit.json", "aws-personalize-dataset.json", "aws-personalize-datasetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbcluster.json index d682d355d7..589a788e8b 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbcluster.json @@ -72,6 +72,7 @@ "create": { "permissions": [ "iam:PassRole", + "iam:CreateServiceLinkedRole", "rds:AddRoleToDBCluster", "rds:AddTagsToResource", "rds:CreateDBCluster", @@ -81,7 +82,8 @@ "rds:ModifyDBCluster", "rds:RestoreDBClusterFromSnapshot", "rds:RestoreDBClusterToPointInTime", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -94,7 +96,8 @@ "rds:ListTagsForResource", "rds:RemoveFromGlobalCluster", "rds:CreateDBClusterSnapshot", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -102,7 +105,8 @@ "permissions": [ "rds:DescribeDBClusters", "rds:ListTagsForResource", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -110,7 +114,8 @@ "permissions": [ "rds:DescribeDBClusters", "rds:ListTagsForResource", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -130,7 +135,8 @@ "rds:RemoveFromGlobalCluster", "rds:RemoveRoleFromDBCluster", "rds:RemoveTagsFromResource", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 } diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-organizations-organization.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-organizations-organization.json new file mode 100644 index 0000000000..844033a13a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-organizations-organization.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "handlers": { + "create": { + "permissions": [ + "organizations:CreateOrganization", + "organizations:DescribeOrganization", + "iam:CreateServiceLinkedRole", + "organizations:ListRoots" + ] + }, + "delete": { + "permissions": [ + "organizations:DeleteOrganization", + "organizations:DescribeOrganization" + ] + }, + "list": { + "permissions": [ + "organizations:DescribeOrganization" + ] + }, + "read": { + "permissions": [ + "organizations:DescribeOrganization", + "organizations:ListRoots" + ] + }, + "update": { + "permissions": [ + "organizations:DescribeOrganization" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "^arn:aws.*:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}", + "type": "string" + }, + "FeatureSet": { + "default": "ALL", + "enum": [ + "ALL", + "CONSOLIDATED_BILLING" + ], + "type": "string" + }, + "Id": { + "pattern": "^o-[a-z0-9]{10,32}$", + "type": "string" + }, + "ManagementAccountArn": { + "pattern": "^arn:aws.*:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}", + "type": "string" + }, + "ManagementAccountEmail": { + "maxLength": 64, + "minLength": 6, + "pattern": "[^\\s@]+@[^\\s@]+\\.[^\\s@]+", + "type": "string" + }, + "ManagementAccountId": { + "pattern": "^\\d{12}$", + "type": "string" + }, + "RootId": { + "maxLength": 64, + "pattern": "^r-[0-9a-z]{4,32}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/ManagementAccountArn", + "/properties/ManagementAccountId", + "/properties/ManagementAccountEmail", + "/properties/RootId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-organizations.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Organizations::Organization" +} 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 6917dd6de0..0015bb7367 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -1038,7 +1038,6 @@ "aws-lakeformation-principalpermissions.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-layerversion.json", @@ -1086,7 +1085,6 @@ "aws-pipes-pipe.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbcluster.json index d682d355d7..589a788e8b 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbcluster.json @@ -72,6 +72,7 @@ "create": { "permissions": [ "iam:PassRole", + "iam:CreateServiceLinkedRole", "rds:AddRoleToDBCluster", "rds:AddTagsToResource", "rds:CreateDBCluster", @@ -81,7 +82,8 @@ "rds:ModifyDBCluster", "rds:RestoreDBClusterFromSnapshot", "rds:RestoreDBClusterToPointInTime", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -94,7 +96,8 @@ "rds:ListTagsForResource", "rds:RemoveFromGlobalCluster", "rds:CreateDBClusterSnapshot", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -102,7 +105,8 @@ "permissions": [ "rds:DescribeDBClusters", "rds:ListTagsForResource", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -110,7 +114,8 @@ "permissions": [ "rds:DescribeDBClusters", "rds:ListTagsForResource", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -130,7 +135,8 @@ "rds:RemoveFromGlobalCluster", "rds:RemoveRoleFromDBCluster", "rds:RemoveTagsFromResource", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 } diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py index 72928de10e..ffc78c16bd 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py @@ -133,9 +133,14 @@ "AWS::Bedrock::Agent", "AWS::Bedrock::AgentAlias", "AWS::Bedrock::DataSource", + "AWS::Bedrock::Flow", + "AWS::Bedrock::FlowAlias", + "AWS::Bedrock::FlowVersion", "AWS::Bedrock::Guardrail", "AWS::Bedrock::GuardrailVersion", "AWS::Bedrock::KnowledgeBase", + "AWS::Bedrock::Prompt", + "AWS::Bedrock::PromptVersion", "AWS::Budgets::Budget", "AWS::Budgets::BudgetsAction", "AWS::CDK::Metadata", @@ -1079,6 +1084,7 @@ "AWS::SageMaker::ImageVersion", "AWS::SageMaker::InferenceComponent", "AWS::SageMaker::InferenceExperiment", + "AWS::SageMaker::MlflowTrackingServer", "AWS::SageMaker::Model", "AWS::SageMaker::ModelBiasJobDefinition", "AWS::SageMaker::ModelCard", @@ -1498,6 +1504,7 @@ "aws-connect-viewversion.json", "aws-connectcampaigns-campaign.json", "aws-controltower-enabledbaseline.json", + "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-customerprofiles-calculatedattributedefinition.json", "aws-customerprofiles-domain.json", @@ -1619,6 +1626,7 @@ "aws-ec2-prefixlist.json", "aws-ec2-route.json", "aws-ec2-routetable.json", + "aws-ec2-securitygroup.json", "aws-ec2-securitygroupegress.json", "aws-ec2-securitygroupingress.json", "aws-ec2-snapshotblockpublicaccess.json", @@ -1940,6 +1948,7 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", @@ -1999,6 +2008,7 @@ "aws-mediaconnect-flow.json", "aws-mediaconnect-flowentitlement.json", "aws-mediaconnect-flowoutput.json", + "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", "aws-mediaconnect-gateway.json", "aws-mediaconvert-jobtemplate.json", @@ -2038,7 +2048,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbclusterparametergroup.json", "aws-neptune-dbinstance.json", "aws-neptune-dbparametergroup.json", @@ -2143,6 +2152,7 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", + "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -2425,10 +2435,8 @@ "aws-workspacesweb-identityprovider.json", "aws-workspacesweb-ipaccesssettings.json", "aws-workspacesweb-networksettings.json", - "aws-workspacesweb-portal.json", "aws-workspacesweb-truststore.json", "aws-workspacesweb-useraccessloggingsettings.json", - "aws-workspacesweb-usersettings.json", "aws-xray-group.json", "aws-xray-resourcepolicy.json", "aws-xray-samplingrule.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flow.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flow.json new file mode 100644 index 0000000000..c663b0157e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flow.json @@ -0,0 +1,829 @@ +{ + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "additionalProperties": false, + "definitions": { + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "DefinitionSubstitutions": { + "additionalProperties": false, + "maxProperties": 500, + "minProperties": 1, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + } + }, + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "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": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + }, + "Key": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Version": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlow", + "bedrock:GetFlow" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlows" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlow", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 1011, + "minLength": 20, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "DefinitionS3Location": { + "$ref": "#/definitions/S3Location" + }, + "DefinitionString": { + "maxLength": 512000, + "type": "string" + }, + "DefinitionSubstitutions": { + "$ref": "#/definitions/DefinitionSubstitutions" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "Id": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "TestAliasTags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Version": { + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Status", + "/properties/UpdatedAt", + "/properties/Version" + ], + "required": [ + "ExecutionRoleArn", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::Flow", + "writeOnlyProperties": [ + "/properties/DefinitionString", + "/properties/DefinitionS3Location", + "/properties/DefinitionSubstitutions" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowalias.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowalias.json new file mode 100644 index 0000000000..e439cc9349 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowalias.json @@ -0,0 +1,158 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FlowArn" + ], + "definitions": { + "FlowAliasRoutingConfigurationListItem": { + "additionalProperties": false, + "properties": { + "FlowVersion": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowAlias" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowAliases" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowAlias", + "bedrock:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn", + "/properties/FlowArn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "FlowArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Id": { + "maxLength": 10, + "minLength": 10, + "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "RoutingConfiguration": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowAliasRoutingConfigurationListItem" + }, + "maxItems": 1, + "minItems": 1, + "type": "array" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/FlowId", + "/properties/Id", + "/properties/UpdatedAt" + ], + "required": [ + "Name", + "FlowArn", + "RoutingConfiguration" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::FlowAlias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowversion.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowversion.json new file mode 100644 index 0000000000..e0e126d659 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-flowversion.json @@ -0,0 +1,716 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Description", + "/properties/FlowArn" + ], + "definitions": { + "ConditionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "Conditions": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "Conditions" + ], + "type": "object" + }, + "FlowCondition": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "FlowConditionalConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "Condition" + ], + "type": "object" + }, + "FlowConnection": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "type": "string" + }, + "Source": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Target": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowConnectionType" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "type": "object" + }, + "FlowConnectionConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "title": "Data", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "title": "Conditional", + "type": "object" + } + ] + }, + "FlowConnectionType": { + "enum": [ + "Data", + "Conditional" + ], + "type": "string" + }, + "FlowDataConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "SourceOutput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "TargetInput": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "type": "object" + }, + "FlowDefinition": { + "additionalProperties": false, + "properties": { + "Connections": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "type": "array" + }, + "Nodes": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "type": "array" + } + }, + "type": "object" + }, + "FlowNode": { + "additionalProperties": false, + "properties": { + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "type": "array" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Outputs": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "type": "array" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "title": "Input", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "title": "Output", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "title": "KnowledgeBase", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "title": "Condition", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "title": "Lex", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "title": "Prompt", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "title": "LambdaFunction", + "type": "object" + } + ] + }, + "FlowNodeIODataType": { + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ], + "type": "string" + }, + "FlowNodeInput": { + "additionalProperties": false, + "properties": { + "Expression": { + "maxLength": 64, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeOutput": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "type": "string" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "FlowNodeType": { + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction" + ], + "type": "string" + }, + "FlowStatus": { + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ], + "type": "string" + }, + "InputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "KnowledgeBaseFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "type": "string" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "LambdaFunctionFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "maxLength": 2048, + "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": [ + "LambdaArn" + ], + "type": "object" + }, + "LexFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "BotAliasArn": { + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "type": "string" + }, + "LocaleId": { + "maxLength": 10, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "type": "object" + }, + "OutputFlowNodeConfiguration": { + "additionalProperties": false, + "type": "object" + }, + "PromptFlowNodeConfiguration": { + "additionalProperties": false, + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "PromptFlowNodeInlineConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "type": "object" + }, + "PromptFlowNodeResourceConfiguration": { + "additionalProperties": false, + "properties": { + "PromptArn": { + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "type": "string" + } + }, + "required": [ + "PromptArn" + ], + "type": "object" + }, + "PromptFlowNodeSourceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "title": "Resource", + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "title": "Inline", + "type": "object" + } + ] + }, + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + }, + "permissions": [ + "bedrock:ListFlowVersions" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowVersion" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/FlowArn", + "/properties/Version" + ], + "properties": { + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "ExecutionRoleArn": { + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "type": "string" + }, + "FlowArn": { + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "type": "string" + }, + "FlowId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Version": { + "pattern": "^[0-9]{1,5}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/Definition", + "/properties/ExecutionRoleArn", + "/properties/FlowId", + "/properties/Name", + "/properties/Status", + "/properties/Version" + ], + "required": [ + "FlowArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Bedrock::FlowVersion" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-prompt.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-prompt.json new file mode 100644 index 0000000000..d005781ea1 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-prompt.json @@ -0,0 +1,312 @@ +{ + "additionalProperties": false, + "definitions": { + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "PromptVariant": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "type": "object" + }, + "TagsMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9\\s._:/=+@-]*$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "type": "string" + } + }, + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + }, + "TextS3Location": { + "$ref": "#/definitions/TextS3Location" + } + }, + "required": [], + "type": "object" + }, + "TextS3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + }, + "Key": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + }, + "Version": { + "maxLength": 1024, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePrompt", + "bedrock:GetPrompt", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "permissions": [ + "bedrock:ListPrompts" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdatePrompt", + "bedrock:GetPrompt", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "CustomerEncryptionKeyArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "type": "string" + }, + "DefaultVariant": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "Id": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Variants": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 0, + "type": "array" + }, + "Version": { + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/UpdatedAt", + "/properties/Version" + ], + "required": [ + "Name" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Bedrock::Prompt", + "writeOnlyProperties": [ + "/properties/Variants/*/TemplateConfiguration/Text/TextS3Location" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-promptversion.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-promptversion.json new file mode 100644 index 0000000000..c7533293d5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-promptversion.json @@ -0,0 +1,260 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PromptArn", + "/properties/Description" + ], + "definitions": { + "PromptInferenceConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptInputVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + } + }, + "type": "object" + }, + "PromptModelInferenceConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTokens": { + "maximum": 4096, + "minimum": 0, + "type": "number" + }, + "StopSequences": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "type": "array" + }, + "Temperature": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "TopK": { + "maximum": 500, + "minimum": 0, + "type": "number" + }, + "TopP": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "type": "object" + }, + "PromptTemplateConfiguration": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "title": "Text", + "type": "object" + } + ] + }, + "PromptTemplateType": { + "enum": [ + "TEXT" + ], + "type": "string" + }, + "PromptVariant": { + "additionalProperties": false, + "properties": { + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + }, + "ModelId": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "type": "object" + }, + "TextPromptTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "InputVariables": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" + }, + "Text": { + "maxLength": 200000, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Text" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePromptVersion", + "bedrock:GetPrompt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "PromptArn": { + "$ref": "resource-schema.json#/properties/PromptArn" + } + }, + "required": [ + "PromptArn" + ] + }, + "permissions": [ + "bedrock:ListPrompts" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "primaryIdentifier": [ + "/properties/Arn" + ], + "properties": { + "Arn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + "type": "string" + }, + "CreatedAt": { + "format": "date-time", + "type": "string" + }, + "DefaultVariant": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "Description": { + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "Name": { + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "type": "string" + }, + "PromptArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "type": "string" + }, + "PromptId": { + "pattern": "^[0-9a-zA-Z]{10}$", + "type": "string" + }, + "UpdatedAt": { + "format": "date-time", + "type": "string" + }, + "Variants": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 1, + "type": "array" + }, + "Version": { + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/PromptId", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Name", + "/properties/DefaultVariant", + "/properties/Variants" + ], + "required": [ + "PromptArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-prompts", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Bedrock::PromptVersion" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-securitygroup.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-securitygroup.json deleted file mode 100644 index 8ab5cdc451..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ec2-securitygroup.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GroupDescription", - "/properties/GroupName", - "/properties/VpcId" - ], - "definitions": { - "Egress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DestinationPrefixListId": { - "type": "string" - }, - "DestinationSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "DestinationSecurityGroupId", - "DestinationPrefixListId" - ], - "type": "object" - }, - "Ingress": { - "additionalProperties": false, - "properties": { - "CidrIp": { - "type": "string" - }, - "CidrIpv6": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "FromPort": { - "minimum": -1, - "type": "integer" - }, - "IpProtocol": { - "type": "string" - }, - "SourcePrefixListId": { - "type": "string" - }, - "SourceSecurityGroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "SourceSecurityGroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "SourceSecurityGroupOwnerId": { - "type": "string" - }, - "ToPort": { - "minimum": -1, - "type": "integer" - } - }, - "required": [ - "IpProtocol" - ], - "requiredXor": [ - "CidrIp", - "CidrIpv6", - "SourcePrefixListId", - "SourceSecurityGroupId", - "SourceSecurityGroupName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "dependentRequired": { - "SecurityGroupEgress": [ - "VpcId" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeSecurityGroups", - "ec2:DeleteSecurityGroup", - "ec2:DescribeInstances" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeSecurityGroups" - ] - }, - "update": { - "permissions": [ - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateTags", - "ec2:DeleteTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "GroupDescription": { - "maxLength": 255, - "minLength": 0, - "pattern": "^([a-z,A-Z,0-9,. _\\-:/()#,@[\\]+=&;\\{\\}!$*])*$", - "type": "string" - }, - "GroupId": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "GroupName": { - "format": "AWS::EC2::SecurityGroup.GroupName", - "type": "string" - }, - "Id": { - "type": "string" - }, - "SecurityGroupEgress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Egress" - }, - "type": "array", - "uniqueItems": false - }, - "SecurityGroupIngress": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Ingress" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "type": "string" - } - }, - "propertyTransform": { - "/properties/SecurityGroupEgress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupEgress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupEgress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)", - "/properties/SecurityGroupIngress/*/FromPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? FromPort : -1)", - "/properties/SecurityGroupIngress/*/IpProtocol": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$mapVal ? $mapVal : $lowercase(IpProtocol))", - "/properties/SecurityGroupIngress/*/ToPort": "($mapVal := $lookup({'1': 'icmp','6': 'tcp','17': 'udp','58': 'icmpv6'}, IpProtocol);$ipProtocol := $mapVal ? $mapVal : $lowercase(IpProtocol);$ipProtocol in ['imcp', 'tcp', 'udp', 'imcp'] ? ToPort : -1)" - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/GroupId" - ], - "required": [ - "GroupDescription" - ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EC2::SecurityGroup", - "writeOnlyProperties": [ - "/properties/SecurityGroupIngress/*/SourceSecurityGroupName" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediaconnect-flowsource.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediaconnect-flowsource.json deleted file mode 100644 index cf7d326061..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediaconnect-flowsource.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "Encryption": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "enum": [ - "aes128", - "aes192", - "aes256" - ], - "type": "string" - }, - "ConstantInitializationVector": { - "type": "string" - }, - "DeviceId": { - "type": "string" - }, - "KeyType": { - "default": "static-key", - "enum": [ - "speke", - "static-key", - "srt-password" - ], - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceId": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecretArn": { - "type": "string" - }, - "Url": { - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "GatewayBridgeSource": { - "additionalProperties": false, - "properties": { - "BridgeArn": { - "type": "string" - }, - "VpcInterfaceAttachment": { - "$ref": "#/definitions/VpcInterfaceAttachment" - } - }, - "required": [ - "BridgeArn" - ], - "type": "object" - }, - "VpcInterfaceAttachment": { - "additionalProperties": false, - "properties": { - "VpcInterfaceName": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "mediaconnect:CreateFlow", - "mediaconnect:DescribeFlow", - "mediaconnect:AddFlowSources", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:RemoveFlowSource" - ] - }, - "list": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "update": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:UpdateFlowSource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SourceArn" - ], - "properties": { - "Decryption": { - "$ref": "#/definitions/Encryption" - }, - "Description": { - "type": "string" - }, - "EntitlementArn": { - "type": "string" - }, - "FlowArn": { - "type": "string" - }, - "GatewayBridgeSource": { - "$ref": "#/definitions/GatewayBridgeSource" - }, - "IngestIp": { - "type": "string" - }, - "IngestPort": { - "type": "integer" - }, - "MaxBitrate": { - "type": "integer" - }, - "MaxLatency": { - "default": 2000, - "type": "integer" - }, - "MinLatency": { - "default": 2000, - "type": "integer" - }, - "Name": { - "type": "string" - }, - "Protocol": { - "enum": [ - "zixi-push", - "rtp-fec", - "rtp", - "rist", - "srt-listener", - "srt-caller" - ], - "type": "string" - }, - "SenderControlPort": { - "type": "integer" - }, - "SenderIpAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "SourceIngestPort": { - "type": "string" - }, - "SourceListenerAddress": { - "type": "string" - }, - "SourceListenerPort": { - "type": "integer" - }, - "StreamId": { - "type": "string" - }, - "VpcInterfaceName": { - "type": "string" - }, - "WhitelistCidr": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IngestIp", - "/properties/SourceArn", - "/properties/SourceIngestPort" - ], - "required": [ - "Name", - "Description" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "typeName": "AWS::MediaConnect::FlowSource" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-mlflowtrackingserver.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-mlflowtrackingserver.json new file mode 100644 index 0000000000..84791991d5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-sagemaker-mlflowtrackingserver.json @@ -0,0 +1,152 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/MlflowVersion", + "/properties/RoleArn" + ], + "createOnlyProperties": [ + "/properties/TrackingServerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:AddTags", + "sagemaker:ListTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + }, + "delete": { + "permissions": [ + "sagemaker:DeleteMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer" + ], + "timeoutInMinutes": 65 + }, + "list": { + "permissions": [ + "sagemaker:ListMlflowTrackingServers" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + } + }, + "primaryIdentifier": [ + "/properties/TrackingServerName" + ], + "properties": { + "ArtifactStoreUri": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^s3:\\/\\/([^\\/]+)\\/?(.*)$", + "type": "string" + }, + "AutomaticModelRegistration": { + "type": "boolean" + }, + "MlflowVersion": { + "maxLength": 32, + "minLength": 1, + "pattern": "^\\d+(\\.\\d+)+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role\\/?[a-zA-Z_0-9+=,.@\\-_\\/]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TrackingServerArn": { + "maxLength": 2048, + "pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:mlflow-tracking-server/.*$", + "type": "string" + }, + "TrackingServerName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}$", + "type": "string" + }, + "TrackingServerSize": { + "enum": [ + "Small", + "Medium", + "Large" + ], + "type": "string" + }, + "WeeklyMaintenanceWindowStart": { + "maxLength": 9, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TrackingServerArn" + ], + "required": [ + "TrackingServerName", + "ArtifactStoreUri", + "RoleArn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::MlflowTrackingServer" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-workspacesweb-portal.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-workspacesweb-portal.json new file mode 100644 index 0000000000..9588a3f3dc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-workspacesweb-portal.json @@ -0,0 +1,311 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AdditionalEncryptionContext", + "/properties/CustomerManagedKey" + ], + "definitions": { + "AuthenticationType": { + "enum": [ + "Standard", + "IAM_Identity_Center" + ], + "type": "string" + }, + "BrowserType": { + "enum": [ + "Chrome" + ], + "type": "string" + }, + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "pattern": "^[\\s\\S]*$", + "type": "string" + } + }, + "type": "object" + }, + "InstanceType": { + "enum": [ + "standard.regular", + "standard.large", + "standard.xlarge" + ], + "type": "string" + }, + "PortalStatus": { + "enum": [ + "Incomplete", + "Pending", + "Active" + ], + "type": "string" + }, + "RendererType": { + "enum": [ + "AppStream" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "workspaces-web:CreatePortal", + "workspaces-web:GetPortal", + "workspaces-web:GetPortalServiceProviderMetadata", + "workspaces-web:AssociateBrowserSettings", + "workspaces-web:AssociateIpAccessSettings", + "workspaces-web:AssociateNetworkSettings", + "workspaces-web:AssociateTrustStore", + "workspaces-web:AssociateUserAccessLoggingSettings", + "workspaces-web:AssociateUserSettings", + "workspaces-web:ListTagsForResource", + "workspaces-web:TagResource", + "kms:CreateGrant", + "kms:GenerateDataKey", + "kms:Decrypt", + "kms:DescribeKey", + "ec2:CreateNetworkInterface", + "ec2:CreateNetworkInterfacePermission", + "ec2:DeleteNetworkInterface", + "ec2:DeleteNetworkInterfacePermission", + "ec2:ModifyNetworkInterfaceAttribute", + "kinesis:PutRecord", + "kinesis:PutRecords", + "kinesis:DescribeStreamSummary", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions" + ] + }, + "delete": { + "permissions": [ + "workspaces-web:GetPortal", + "workspaces-web:DeletePortal", + "workspaces-web:DisassociateBrowserSettings", + "workspaces-web:DisassociateIpAccessSettings", + "workspaces-web:DisassociateNetworkSettings", + "workspaces-web:DisassociateTrustStore", + "workspaces-web:DisassociateUserAccessLoggingSettings", + "workspaces-web:DisassociateUserSettings", + "kms:Decrypt", + "kms:DescribeKey", + "sso:DeleteManagedApplicationInstance" + ] + }, + "list": { + "permissions": [ + "workspaces-web:ListPortals", + "kms:Decrypt", + "kms:DescribeKey" + ] + }, + "read": { + "permissions": [ + "workspaces-web:GetPortal", + "workspaces-web:GetPortalServiceProviderMetadata", + "workspaces-web:ListTagsForResource", + "kms:Decrypt", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "workspaces-web:GetPortal", + "workspaces-web:GetPortalServiceProviderMetadata", + "workspaces-web:UpdatePortal", + "workspaces-web:AssociateBrowserSettings", + "workspaces-web:AssociateIpAccessSettings", + "workspaces-web:AssociateNetworkSettings", + "workspaces-web:AssociateTrustStore", + "workspaces-web:AssociateUserAccessLoggingSettings", + "workspaces-web:AssociateUserSettings", + "workspaces-web:DisassociateBrowserSettings", + "workspaces-web:DisassociateIpAccessSettings", + "workspaces-web:DisassociateNetworkSettings", + "workspaces-web:DisassociateTrustStore", + "workspaces-web:DisassociateUserAccessLoggingSettings", + "workspaces-web:DisassociateUserSettings", + "workspaces-web:ListTagsForResource", + "workspaces-web:TagResource", + "workspaces-web:UntagResource", + "kms:CreateGrant", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:Decrypt", + "kms:DescribeKey", + "ec2:CreateNetworkInterface", + "ec2:CreateNetworkInterfacePermission", + "ec2:DeleteNetworkInterface", + "ec2:DeleteNetworkInterfacePermission", + "ec2:ModifyNetworkInterfaceAttribute", + "kinesis:PutRecord", + "kinesis:PutRecords", + "kinesis:DescribeStreamSummary", + "sso:CreateManagedApplicationInstance", + "sso:DeleteManagedApplicationInstance", + "sso:DescribeRegisteredRegions", + "sso:GetApplicationInstance", + "sso:ListApplicationInstances" + ] + } + }, + "primaryIdentifier": [ + "/properties/PortalArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "AuthenticationType": { + "$ref": "#/definitions/AuthenticationType" + }, + "BrowserSettingsArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", + "type": "string" + }, + "BrowserType": { + "$ref": "#/definitions/BrowserType" + }, + "CreationDate": { + "format": "date-time", + "type": "string" + }, + "CustomerManagedKey": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:kms:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:key\\/[a-zA-Z0-9-]+$", + "type": "string" + }, + "DisplayName": { + "maxLength": 64, + "minLength": 1, + "pattern": "^.+$", + "type": "string" + }, + "InstanceType": { + "$ref": "#/definitions/InstanceType" + }, + "IpAccessSettingsArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", + "type": "string" + }, + "MaxConcurrentSessions": { + "maximum": 5000, + "minimum": 1, + "type": "number" + }, + "NetworkSettingsArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", + "type": "string" + }, + "PortalArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", + "type": "string" + }, + "PortalEndpoint": { + "maxLength": 253, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]?((?!-)([A-Za-z0-9-]*[A-Za-z0-9])\\.)+[a-zA-Z0-9]+$", + "type": "string" + }, + "PortalStatus": { + "$ref": "#/definitions/PortalStatus" + }, + "RendererType": { + "$ref": "#/definitions/RendererType" + }, + "ServiceProviderSamlMetadata": { + "maxLength": 204800, + "minLength": 0, + "pattern": "^.*$", + "type": "string" + }, + "StatusReason": { + "maxLength": 1024, + "minLength": 1, + "pattern": ".*", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "TrustStoreArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", + "type": "string" + }, + "UserAccessLoggingSettingsArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", + "type": "string" + }, + "UserSettingsArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/BrowserType", + "/properties/CreationDate", + "/properties/PortalArn", + "/properties/PortalEndpoint", + "/properties/PortalStatus", + "/properties/RendererType", + "/properties/ServiceProviderSamlMetadata", + "/properties/StatusReason" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::WorkSpacesWeb::Portal" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-workspacesweb-usersettings.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-workspacesweb-usersettings.json new file mode 100644 index 0000000000..42252e5db8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-workspacesweb-usersettings.json @@ -0,0 +1,250 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AdditionalEncryptionContext", + "/properties/CustomerManagedKey" + ], + "definitions": { + "CookieSpecification": { + "additionalProperties": false, + "properties": { + "Domain": { + "maxLength": 253, + "minLength": 0, + "pattern": "^(\\.?)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$", + "type": "string" + }, + "Name": { + "maxLength": 4096, + "minLength": 0, + "type": "string" + }, + "Path": { + "maxLength": 2000, + "minLength": 0, + "pattern": "^/(\\S)*$", + "type": "string" + } + }, + "required": [ + "Domain" + ], + "type": "object" + }, + "CookieSynchronizationConfiguration": { + "additionalProperties": false, + "properties": { + "Allowlist": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CookieSpecification" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + }, + "Blocklist": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CookieSpecification" + }, + "maxItems": 10, + "minItems": 0, + "type": "array" + } + }, + "required": [ + "Allowlist" + ], + "type": "object" + }, + "EnabledType": { + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string" + }, + "EncryptionContextMap": { + "additionalProperties": false, + "patternProperties": { + "^[\\s\\S]*$": { + "maxLength": 131072, + "minLength": 0, + "pattern": "^[\\s\\S]*$", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "workspaces-web:CreateUserSettings", + "workspaces-web:GetUserSettings", + "workspaces-web:ListTagsForResource", + "workspaces-web:TagResource", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "workspaces-web:GetUserSettings", + "workspaces-web:DeleteUserSettings", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "list": { + "permissions": [ + "workspaces-web:ListUserSettings", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "workspaces-web:GetUserSettings", + "workspaces-web:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "workspaces-web:UpdateUserSettings", + "workspaces-web:TagResource", + "workspaces-web:UntagResource", + "workspaces-web:GetUserSettings", + "workspaces-web:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + } + }, + "primaryIdentifier": [ + "/properties/UserSettingsArn" + ], + "properties": { + "AdditionalEncryptionContext": { + "$ref": "#/definitions/EncryptionContextMap" + }, + "AssociatedPortalArns": { + "insertionOrder": false, + "items": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", + "type": "string" + }, + "type": "array" + }, + "CookieSynchronizationConfiguration": { + "$ref": "#/definitions/CookieSynchronizationConfiguration" + }, + "CopyAllowed": { + "$ref": "#/definitions/EnabledType" + }, + "CustomerManagedKey": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:kms:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:key\\/[a-zA-Z0-9-]+$", + "type": "string" + }, + "DeepLinkAllowed": { + "$ref": "#/definitions/EnabledType" + }, + "DisconnectTimeoutInMinutes": { + "default": null, + "maximum": 600, + "minimum": 1, + "type": "number" + }, + "DownloadAllowed": { + "$ref": "#/definitions/EnabledType" + }, + "IdleDisconnectTimeoutInMinutes": { + "default": null, + "maximum": 60, + "minimum": 0, + "type": "number" + }, + "PasteAllowed": { + "$ref": "#/definitions/EnabledType" + }, + "PrintAllowed": { + "$ref": "#/definitions/EnabledType" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array" + }, + "UploadAllowed": { + "$ref": "#/definitions/EnabledType" + }, + "UserSettingsArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/AssociatedPortalArns", + "/properties/UserSettingsArn" + ], + "required": [ + "CopyAllowed", + "DownloadAllowed", + "PasteAllowed", + "PrintAllowed", + "UploadAllowed" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::WorkSpacesWeb::UserSettings" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py index a7d8fcf5d5..01cc7b7f04 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py @@ -707,7 +707,6 @@ "aws-config-deliverychannel.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -910,7 +909,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-layerversion.json", @@ -968,7 +966,6 @@ "aws-quicksight-theme.json", "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} 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..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} 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..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_north_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py index 98c244d87d..3698d15ec9 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py @@ -1121,6 +1121,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codeartifact-domain.json", @@ -1155,6 +1156,7 @@ "aws-cognito-userpoolidentityprovider.json", "aws-cognito-userpoolresourceserver.json", "aws-cognito-userpoolriskconfigurationattachment.json", + "aws-cognito-userpooluicustomizationattachment.json", "aws-cognito-userpooluser.json", "aws-cognito-userpoolusertogroupattachment.json", "aws-config-aggregationauthorization.json", @@ -1168,7 +1170,6 @@ "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-databrew-dataset.json", "aws-databrew-job.json", @@ -1277,7 +1278,6 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", @@ -1425,6 +1425,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -1500,7 +1501,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1556,6 +1556,7 @@ "aws-mediaconnect-flow.json", "aws-mediaconnect-flowentitlement.json", "aws-mediaconnect-flowoutput.json", + "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", "aws-mediaconnect-gateway.json", "aws-mediaconvert-jobtemplate.json", @@ -1648,7 +1649,6 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-cognito-userpooluicustomizationattachment.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-cognito-userpooluicustomizationattachment.json deleted file mode 100644 index 98baaf1ea2..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-cognito-userpooluicustomizationattachment.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/UserPoolId", - "/properties/ClientId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CSS": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "UserPoolId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "UserPoolId", - "ClientId" - ], - "typeName": "AWS::Cognito::UserPoolUICustomizationAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-mediaconnect-flowsource.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-mediaconnect-flowsource.json deleted file mode 100644 index cf7d326061..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-mediaconnect-flowsource.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "Encryption": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "enum": [ - "aes128", - "aes192", - "aes256" - ], - "type": "string" - }, - "ConstantInitializationVector": { - "type": "string" - }, - "DeviceId": { - "type": "string" - }, - "KeyType": { - "default": "static-key", - "enum": [ - "speke", - "static-key", - "srt-password" - ], - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceId": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecretArn": { - "type": "string" - }, - "Url": { - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "GatewayBridgeSource": { - "additionalProperties": false, - "properties": { - "BridgeArn": { - "type": "string" - }, - "VpcInterfaceAttachment": { - "$ref": "#/definitions/VpcInterfaceAttachment" - } - }, - "required": [ - "BridgeArn" - ], - "type": "object" - }, - "VpcInterfaceAttachment": { - "additionalProperties": false, - "properties": { - "VpcInterfaceName": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "mediaconnect:CreateFlow", - "mediaconnect:DescribeFlow", - "mediaconnect:AddFlowSources", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:RemoveFlowSource" - ] - }, - "list": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "update": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:UpdateFlowSource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SourceArn" - ], - "properties": { - "Decryption": { - "$ref": "#/definitions/Encryption" - }, - "Description": { - "type": "string" - }, - "EntitlementArn": { - "type": "string" - }, - "FlowArn": { - "type": "string" - }, - "GatewayBridgeSource": { - "$ref": "#/definitions/GatewayBridgeSource" - }, - "IngestIp": { - "type": "string" - }, - "IngestPort": { - "type": "integer" - }, - "MaxBitrate": { - "type": "integer" - }, - "MaxLatency": { - "default": 2000, - "type": "integer" - }, - "MinLatency": { - "default": 2000, - "type": "integer" - }, - "Name": { - "type": "string" - }, - "Protocol": { - "enum": [ - "zixi-push", - "rtp-fec", - "rtp", - "rist", - "srt-listener", - "srt-caller" - ], - "type": "string" - }, - "SenderControlPort": { - "type": "integer" - }, - "SenderIpAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "SourceIngestPort": { - "type": "string" - }, - "SourceListenerAddress": { - "type": "string" - }, - "SourceListenerPort": { - "type": "integer" - }, - "StreamId": { - "type": "string" - }, - "VpcInterfaceName": { - "type": "string" - }, - "WhitelistCidr": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IngestIp", - "/properties/SourceArn", - "/properties/SourceIngestPort" - ], - "required": [ - "Name", - "Description" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "typeName": "AWS::MediaConnect::FlowSource" -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbcluster.json index d682d355d7..589a788e8b 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbcluster.json @@ -72,6 +72,7 @@ "create": { "permissions": [ "iam:PassRole", + "iam:CreateServiceLinkedRole", "rds:AddRoleToDBCluster", "rds:AddTagsToResource", "rds:CreateDBCluster", @@ -81,7 +82,8 @@ "rds:ModifyDBCluster", "rds:RestoreDBClusterFromSnapshot", "rds:RestoreDBClusterToPointInTime", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -94,7 +96,8 @@ "rds:ListTagsForResource", "rds:RemoveFromGlobalCluster", "rds:CreateDBClusterSnapshot", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -102,7 +105,8 @@ "permissions": [ "rds:DescribeDBClusters", "rds:ListTagsForResource", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -110,7 +114,8 @@ "permissions": [ "rds:DescribeDBClusters", "rds:ListTagsForResource", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 }, @@ -130,7 +135,8 @@ "rds:RemoveFromGlobalCluster", "rds:RemoveRoleFromDBCluster", "rds:RemoveTagsFromResource", - "kms:*" + "kms:CreateGrant", + "kms:DescribeKey" ], "timeoutInMinutes": 2160 } diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py index 682dba7c3e..4be0d7817c 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py @@ -914,6 +914,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codeartifact-domain.json", @@ -952,7 +953,6 @@ "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-databrew-dataset.json", "aws-databrew-job.json", @@ -1221,7 +1221,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1301,7 +1300,6 @@ "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py index 04ee2ef416..b180759f15 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py @@ -508,6 +508,7 @@ "AWS::SSO::Application", "AWS::SSO::ApplicationAssignment", "AWS::SSO::Assignment", + "AWS::SSO::Instance", "AWS::SSO::InstanceAccessControlAttributeConfiguration", "AWS::SSO::PermissionSet", "AWS::SageMaker::App", @@ -603,6 +604,8 @@ "aws-acmpca-certificateauthority.json", "aws-acmpca-certificateauthorityactivation.json", "aws-acmpca-permission.json", + "aws-amazonmq-broker.json", + "aws-amazonmq-configuration.json", "aws-apigateway-vpclink.json", "aws-apigatewayv2-apimapping.json", "aws-apigatewayv2-authorizer.json", @@ -686,6 +689,7 @@ "aws-cloudtrail-trail.json", "aws-cloudwatch-alarm.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codedeploy-application.json", @@ -709,7 +713,6 @@ "aws-config-deliverychannel.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -880,6 +883,7 @@ "aws-guardduty-threatintelset.json", "aws-iam-group.json", "aws-iam-grouppolicy.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -914,7 +918,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-function.json", @@ -967,7 +970,6 @@ "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-pipes-pipe.json", "aws-ram-permission.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1026,6 +1028,7 @@ "aws-s3objectlambda-accesspointpolicy.json", "aws-sagemaker-app.json", "aws-sagemaker-appimageconfig.json", + "aws-sagemaker-domain.json", "aws-sagemaker-featuregroup.json", "aws-sagemaker-image.json", "aws-sagemaker-imageversion.json", @@ -1034,6 +1037,7 @@ "aws-sagemaker-modelpackagegroup.json", "aws-sagemaker-pipeline.json", "aws-sagemaker-project.json", + "aws-sagemaker-userprofile.json", "aws-scheduler-schedule.json", "aws-scheduler-schedulegroup.json", "aws-sdb-domain.json", @@ -1083,6 +1087,7 @@ "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-statemachinealias.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-amazonmq-broker.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-amazonmq-broker.json deleted file mode 100644 index 4f3f732bce..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-amazonmq-broker.json +++ /dev/null @@ -1,344 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/BrokerName", - "/properties/StorageType", - "/properties/DeploymentMode", - "/properties/EngineType", - "/properties/SubnetIds", - "/properties/AuthenticationStrategy", - "/properties/EncryptionOptions", - "/properties/PubliclyAccessible" - ], - "definitions": { - "ConfigurationId": { - "additionalProperties": false, - "properties": { - "Id": { - "type": "string" - }, - "Revision": { - "type": "integer" - } - }, - "required": [ - "Revision", - "Id" - ], - "type": "object" - }, - "EncryptionOptions": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "type": "string" - }, - "UseAwsOwnedKey": { - "type": "boolean" - } - }, - "required": [ - "UseAwsOwnedKey" - ], - "type": "object" - }, - "LdapServerMetadata": { - "additionalProperties": false, - "properties": { - "Hosts": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "RoleBase": { - "type": "string" - }, - "RoleName": { - "type": "string" - }, - "RoleSearchMatching": { - "type": "string" - }, - "RoleSearchSubtree": { - "type": "boolean" - }, - "ServiceAccountPassword": { - "type": "string" - }, - "ServiceAccountUsername": { - "type": "string" - }, - "UserBase": { - "type": "string" - }, - "UserRoleName": { - "type": "string" - }, - "UserSearchMatching": { - "type": "string" - }, - "UserSearchSubtree": { - "type": "boolean" - } - }, - "required": [ - "Hosts", - "UserSearchMatching", - "UserBase", - "RoleSearchMatching", - "ServiceAccountUsername", - "RoleBase", - "ServiceAccountPassword" - ], - "type": "object" - }, - "LogList": { - "additionalProperties": false, - "properties": { - "Audit": { - "type": "boolean" - }, - "General": { - "type": "boolean" - } - }, - "type": "object" - }, - "MaintenanceWindow": { - "additionalProperties": false, - "properties": { - "DayOfWeek": { - "type": "string" - }, - "TimeOfDay": { - "type": "string" - }, - "TimeZone": { - "type": "string" - } - }, - "required": [ - "DayOfWeek", - "TimeOfDay", - "TimeZone" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "User": { - "additionalProperties": false, - "properties": { - "ConsoleAccess": { - "type": "boolean" - }, - "Groups": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Password": { - "type": "string" - }, - "ReplicationUser": { - "type": "boolean" - }, - "Username": { - "type": "string" - } - }, - "required": [ - "Username", - "Password" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "AmqpEndpoints": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Arn": { - "type": "string" - }, - "AuthenticationStrategy": { - "type": "string" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "BrokerName": { - "type": "string" - }, - "Configuration": { - "$ref": "#/definitions/ConfigurationId" - }, - "ConfigurationId": { - "type": "string" - }, - "ConfigurationRevision": { - "type": "integer" - }, - "DataReplicationMode": { - "type": "string" - }, - "DataReplicationPrimaryBrokerArn": { - "type": "string" - }, - "DeploymentMode": { - "enum": [ - "ACTIVE_STANDBY_MULTI_AZ", - "CLUSTER_MULTI_AZ", - "SINGLE_INSTANCE" - ], - "type": "string" - }, - "EncryptionOptions": { - "$ref": "#/definitions/EncryptionOptions" - }, - "EngineType": { - "enum": [ - "ACTIVEMQ", - "RABBITMQ" - ], - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "HostInstanceType": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "IpAddresses": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "LdapServerMetadata": { - "$ref": "#/definitions/LdapServerMetadata" - }, - "Logs": { - "$ref": "#/definitions/LogList" - }, - "MaintenanceWindowStartTime": { - "$ref": "#/definitions/MaintenanceWindow" - }, - "MqttEndpoints": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "OpenWireEndpoints": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "StompEndpoints": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "StorageType": { - "type": "string" - }, - "SubnetIds": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "Users": { - "items": { - "$ref": "#/definitions/User" - }, - "type": "array", - "uniqueItems": false - }, - "WssEndpoints": { - "items": { - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/IpAddresses", - "/properties/Id", - "/properties/MqttEndpoints", - "/properties/OpenWireEndpoints", - "/properties/ConfigurationId", - "/properties/ConfigurationRevision", - "/properties/StompEndpoints", - "/properties/WssEndpoints", - "/properties/AmqpEndpoints", - "/properties/Arn" - ], - "required": [ - "EngineVersion", - "DeploymentMode", - "HostInstanceType", - "EngineType", - "AutoMinorVersionUpgrade", - "Users", - "PubliclyAccessible", - "BrokerName" - ], - "typeName": "AWS::AmazonMQ::Broker" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-amazonmq-configuration.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-amazonmq-configuration.json deleted file mode 100644 index 4cf902e771..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-amazonmq-configuration.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/EngineType", - "/properties/Name", - "/properties/AuthenticationStrategy", - "/properties/EngineVersion" - ], - "definitions": { - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "type": "string" - }, - "AuthenticationStrategy": { - "type": "string" - }, - "Data": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "EngineType": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Revision": { - "type": "integer" - }, - "Tags": { - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Revision", - "/properties/Id", - "/properties/Arn" - ], - "required": [ - "EngineVersion", - "EngineType", - "Data", - "Name" - ], - "typeName": "AWS::AmazonMQ::Configuration" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} 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..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-domain.json deleted file mode 100644 index f6f11084f6..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-domain.json +++ /dev/null @@ -1,774 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "maxLength": 256, - "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", - "type": "string" - } - }, - "required": [ - "RepositoryUrl" - ], - "type": "object" - }, - "CustomFileSystemConfig": { - "additionalProperties": false, - "properties": { - "EFSFileSystemConfig": { - "$ref": "#/definitions/EFSFileSystemConfig" - } - }, - "type": "object" - }, - "CustomImage": { - "additionalProperties": false, - "properties": { - "AppImageConfigName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "CustomPosixUserConfig": { - "additionalProperties": false, - "properties": { - "Gid": { - "maximum": 4000000, - "minimum": 1001, - "type": "integer" - }, - "Uid": { - "maximum": 4000000, - "minimum": 10000, - "type": "integer" - } - }, - "required": [ - "Uid", - "Gid" - ], - "type": "object" - }, - "DefaultEbsStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "properties": { - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, - "DockerSettings": { - "additionalProperties": false, - "properties": { - "EnableDockerAccess": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "VpcOnlyTrustedAccounts": { - "insertionOrder": false, - "items": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "maxItems": 20, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "DomainSettings": { - "additionalProperties": false, - "properties": { - "DockerSettings": { - "$ref": "#/definitions/DockerSettings" - }, - "RStudioServerProDomainSettings": { - "$ref": "#/definitions/RStudioServerProDomainSettings" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 3, - "minItems": 1, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "EFSFileSystemConfig": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 21, - "minLength": 11, - "pattern": "^(fs-[0-9a-f]{8,})$", - "type": "string" - }, - "FileSystemPath": { - "maxLength": 256, - "minLength": 1, - "pattern": "^\\/\\S*$", - "type": "string" - } - }, - "required": [ - "FileSystemId" - ], - "type": "object" - }, - "JupyterLabAppSettings": { - "additionalProperties": false, - "properties": { - "CodeRepositories": { - "items": { - "$ref": "#/definitions/CodeRepository" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RSessionAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "properties": { - "AccessStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "RStudioServerProDomainSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "DomainExecutionRoleArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "RStudioConnectUrl": { - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - }, - "RStudioPackageManagerUrl": { - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - } - }, - "required": [ - "DomainExecutionRoleArn" - ], - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "enum": [ - "system", - "ml.t3.micro", - "ml.t3.small", - "ml.t3.medium", - "ml.t3.large", - "ml.t3.xlarge", - "ml.t3.2xlarge", - "ml.m5.large", - "ml.m5.xlarge", - "ml.m5.2xlarge", - "ml.m5.4xlarge", - "ml.m5.8xlarge", - "ml.m5.12xlarge", - "ml.m5.16xlarge", - "ml.m5.24xlarge", - "ml.c5.large", - "ml.c5.xlarge", - "ml.c5.2xlarge", - "ml.c5.4xlarge", - "ml.c5.9xlarge", - "ml.c5.12xlarge", - "ml.c5.18xlarge", - "ml.c5.24xlarge", - "ml.p3.2xlarge", - "ml.p3.8xlarge", - "ml.p3.16xlarge", - "ml.g4dn.xlarge", - "ml.g4dn.2xlarge", - "ml.g4dn.4xlarge", - "ml.g4dn.8xlarge", - "ml.g4dn.12xlarge", - "ml.g4dn.16xlarge", - "ml.r5.large", - "ml.r5.xlarge", - "ml.r5.2xlarge", - "ml.r5.4xlarge", - "ml.r5.8xlarge", - "ml.r5.12xlarge", - "ml.r5.16xlarge", - "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", - "ml.g5.xlarge", - "ml.g5.2xlarge", - "ml.g5.4xlarge", - "ml.g5.8xlarge", - "ml.g5.12xlarge", - "ml.g5.16xlarge", - "ml.g5.24xlarge", - "ml.g5.48xlarge", - "ml.p4d.24xlarge", - "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "type": "string" - }, - "LifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "SageMakerImageArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "type": "object" - }, - "SharingSettings": { - "additionalProperties": false, - "properties": { - "NotebookOutputOption": { - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "type": "object" - }, - "SpaceEbsVolumeSizeInGb": { - "maximum": 16384, - "minimum": 5, - "type": "integer" - }, - "StudioLifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UserSettings": { - "additionalProperties": false, - "properties": { - "CodeEditorAppSettings": { - "$ref": "#/definitions/CodeEditorAppSettings" - }, - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "DefaultLandingUri": { - "maxLength": 1023, - "type": "string" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "RSessionAppSettings": { - "$ref": "#/definitions/RSessionAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings" - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - }, - "StudioWebPortal": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:CreateDomain", - "sagemaker:DescribeDomain", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "efs:CreateFileSystem", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKeyWithoutPlainText" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteApp", - "sagemaker:DeleteDomain", - "sagemaker:DescribeDomain" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListDomains" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeDomain" - ] - }, - "update": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:UpdateDomain", - "sagemaker:DescribeDomain", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/DomainId" - ], - "properties": { - "AppNetworkAccessType": { - "enum": [ - "PublicInternetOnly", - "VpcOnly" - ], - "type": "string" - }, - "AppSecurityGroupManagement": { - "enum": [ - "Service", - "Customer" - ], - "type": "string" - }, - "AuthMode": { - "enum": [ - "SSO", - "IAM" - ], - "type": "string" - }, - "DefaultSpaceSettings": { - "$ref": "#/definitions/DefaultSpaceSettings" - }, - "DefaultUserSettings": { - "$ref": "#/definitions/UserSettings" - }, - "DomainArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", - "type": "string" - }, - "DomainId": { - "maxLength": 63, - "pattern": "^d-(-*[a-z0-9])+", - "type": "string" - }, - "DomainName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "DomainSettings": { - "$ref": "#/definitions/DomainSettings" - }, - "HomeEfsFileSystemId": { - "maxLength": 32, - "type": "string" - }, - "KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "SecurityGroupIdForDomainBoundary": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "SingleSignOnApplicationArn": { - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", - "type": "string" - }, - "SingleSignOnManagedApplicationInstanceId": { - "maxLength": 256, - "type": "string" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "Url": { - "maxLength": 1024, - "type": "string" - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/DomainArn", - "/properties/Url", - "/properties/DomainId", - "/properties/HomeEfsFileSystemId", - "/properties/SecurityGroupIdForDomainBoundary", - "/properties/SingleSignOnManagedApplicationInstanceId", - "/properties/SingleSignOnApplicationArn" - ], - "required": [ - "AuthMode", - "DefaultUserSettings", - "DomainName", - "SubnetIds", - "VpcId" - ], - "typeName": "AWS::SageMaker::Domain", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-userprofile.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-userprofile.json deleted file mode 100644 index f7e1db12f6..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-userprofile.json +++ /dev/null @@ -1,535 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DomainId", - "/properties/UserProfileName", - "/properties/SingleSignOnUserIdentifier", - "/properties/SingleSignOnUserValue", - "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", - "/properties/UserSettings/RStudioServerProAppSettings/UserGroup", - "/properties/Tags" - ], - "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "maxLength": 256, - "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", - "type": "string" - } - }, - "required": [ - "RepositoryUrl" - ], - "type": "object" - }, - "CustomFileSystemConfig": { - "additionalProperties": false, - "properties": { - "EFSFileSystemConfig": { - "$ref": "#/definitions/EFSFileSystemConfig" - } - }, - "type": "object" - }, - "CustomImage": { - "additionalProperties": false, - "properties": { - "AppImageConfigName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "CustomPosixUserConfig": { - "additionalProperties": false, - "properties": { - "Gid": { - "maximum": 4000000, - "minimum": 1001, - "type": "integer" - }, - "Uid": { - "maximum": 4000000, - "minimum": 10000, - "type": "integer" - } - }, - "required": [ - "Uid", - "Gid" - ], - "type": "object" - }, - "DefaultEbsStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, - "EFSFileSystemConfig": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 21, - "minLength": 11, - "pattern": "^(fs-[0-9a-f]{8,})$", - "type": "string" - }, - "FileSystemPath": { - "maxLength": 256, - "minLength": 1, - "pattern": "^\\/\\S*$", - "type": "string" - } - }, - "required": [ - "FileSystemId" - ], - "type": "object" - }, - "JupyterLabAppSettings": { - "additionalProperties": false, - "properties": { - "CodeRepositories": { - "items": { - "$ref": "#/definitions/CodeRepository" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "properties": { - "AccessStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "enum": [ - "system", - "ml.t3.micro", - "ml.t3.small", - "ml.t3.medium", - "ml.t3.large", - "ml.t3.xlarge", - "ml.t3.2xlarge", - "ml.m5.large", - "ml.m5.xlarge", - "ml.m5.2xlarge", - "ml.m5.4xlarge", - "ml.m5.8xlarge", - "ml.m5.12xlarge", - "ml.m5.16xlarge", - "ml.m5.24xlarge", - "ml.c5.large", - "ml.c5.xlarge", - "ml.c5.2xlarge", - "ml.c5.4xlarge", - "ml.c5.9xlarge", - "ml.c5.12xlarge", - "ml.c5.18xlarge", - "ml.c5.24xlarge", - "ml.p3.2xlarge", - "ml.p3.8xlarge", - "ml.p3.16xlarge", - "ml.g4dn.xlarge", - "ml.g4dn.2xlarge", - "ml.g4dn.4xlarge", - "ml.g4dn.8xlarge", - "ml.g4dn.12xlarge", - "ml.g4dn.16xlarge", - "ml.r5.large", - "ml.r5.xlarge", - "ml.r5.2xlarge", - "ml.r5.4xlarge", - "ml.r5.8xlarge", - "ml.r5.12xlarge", - "ml.r5.16xlarge", - "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", - "ml.g5.xlarge", - "ml.g5.2xlarge", - "ml.g5.4xlarge", - "ml.g5.8xlarge", - "ml.g5.12xlarge", - "ml.g5.16xlarge", - "ml.g5.24xlarge", - "ml.g5.48xlarge", - "ml.p4d.24xlarge", - "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "type": "string" - }, - "SageMakerImageArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "type": "object" - }, - "SharingSettings": { - "additionalProperties": false, - "properties": { - "NotebookOutputOption": { - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "type": "object" - }, - "SpaceEbsVolumeSizeInGb": { - "maximum": 16384, - "minimum": 5, - "type": "integer" - }, - "StudioLifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UserSettings": { - "additionalProperties": false, - "properties": { - "CodeEditorAppSettings": { - "$ref": "#/definitions/CodeEditorAppSettings" - }, - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "DefaultLandingUri": { - "maxLength": 1023, - "type": "string" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings" - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - }, - "StudioWebPortal": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateUserProfile", - "sagemaker:DescribeUserProfile", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteUserProfile", - "sagemaker:DescribeUserProfile" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListUserProfiles" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeUserProfile" - ] - }, - "update": { - "permissions": [ - "sagemaker:UpdateUserProfile", - "sagemaker:DescribeUserProfile", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/UserProfileName", - "/properties/DomainId" - ], - "properties": { - "DomainId": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "SingleSignOnUserIdentifier": { - "pattern": "UserName", - "type": "string" - }, - "SingleSignOnUserValue": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "UserProfileArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*", - "type": "string" - }, - "UserProfileName": { - "maxLength": 63, - "minLength": 1, - "type": "string" - }, - "UserSettings": { - "$ref": "#/definitions/UserSettings", - "maxItems": 50, - "minItems": 0, - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/UserProfileArn" - ], - "required": [ - "DomainId", - "UserProfileName" - ], - "typeName": "AWS::SageMaker::UserProfile", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py index a6527856f0..fb06bc1b42 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py @@ -1061,6 +1061,7 @@ "AWS::SageMaker::ImageVersion", "AWS::SageMaker::InferenceComponent", "AWS::SageMaker::InferenceExperiment", + "AWS::SageMaker::MlflowTrackingServer", "AWS::SageMaker::Model", "AWS::SageMaker::ModelBiasJobDefinition", "AWS::SageMaker::ModelCard", @@ -1449,6 +1450,7 @@ "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", + "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-databrew-dataset.json", "aws-databrew-job.json", @@ -1578,7 +1580,6 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", @@ -2006,7 +2007,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbclusterparametergroup.json", "aws-neptune-dbinstance.json", "aws-neptune-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-mlflowtrackingserver.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-mlflowtrackingserver.json new file mode 100644 index 0000000000..84791991d5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-sagemaker-mlflowtrackingserver.json @@ -0,0 +1,152 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/MlflowVersion", + "/properties/RoleArn" + ], + "createOnlyProperties": [ + "/properties/TrackingServerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:AddTags", + "sagemaker:ListTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + }, + "delete": { + "permissions": [ + "sagemaker:DeleteMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer" + ], + "timeoutInMinutes": 65 + }, + "list": { + "permissions": [ + "sagemaker:ListMlflowTrackingServers" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + } + }, + "primaryIdentifier": [ + "/properties/TrackingServerName" + ], + "properties": { + "ArtifactStoreUri": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^s3:\\/\\/([^\\/]+)\\/?(.*)$", + "type": "string" + }, + "AutomaticModelRegistration": { + "type": "boolean" + }, + "MlflowVersion": { + "maxLength": 32, + "minLength": 1, + "pattern": "^\\d+(\\.\\d+)+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role\\/?[a-zA-Z_0-9+=,.@\\-_\\/]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TrackingServerArn": { + "maxLength": 2048, + "pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:mlflow-tracking-server/.*$", + "type": "string" + }, + "TrackingServerName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}$", + "type": "string" + }, + "TrackingServerSize": { + "enum": [ + "Small", + "Medium", + "Large" + ], + "type": "string" + }, + "WeeklyMaintenanceWindowStart": { + "maxLength": 9, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TrackingServerArn" + ], + "required": [ + "TrackingServerName", + "ArtifactStoreUri", + "RoleArn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::MlflowTrackingServer" +} 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 76054cc9bd..9a25a28743 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py @@ -1771,7 +1771,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1864,7 +1863,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbclusterparametergroup.json", "aws-neptune-dbinstance.json", "aws-neptune-dbparametergroup.json", @@ -2153,6 +2151,8 @@ "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", + "aws-stepfunctions-activity.json", + "aws-stepfunctions-statemachine.json", "aws-stepfunctions-statemachinealias.json", "aws-stepfunctions-statemachineversion.json", "aws-supportapp-accountalias.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_2/aws-stepfunctions-activity.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-stepfunctions-activity.json deleted file mode 100644 index 7aaf191ed1..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-stepfunctions-activity.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "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" - } - }, - "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_west_2/aws-stepfunctions-statemachine.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-stepfunctions-statemachine.json deleted file mode 100644 index c8a1b0f42e..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-stepfunctions-statemachine.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "additionalIdentifiers": [ - [ - "/properties/StateMachineName" - ] - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/StateMachineName", - "/properties/StateMachineType" - ], - "definitions": { - "CloudWatchLogsLogGroup": { - "additionalProperties": false, - "properties": { - "LogGroupArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "Definition": { - "minProperties": 1, - "type": "object" - }, - "DefinitionSubstitutions": { - "additionalProperties": false, - "minProperties": 1, - "patternProperties": { - ".*": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "boolean" - } - ] - } - }, - "type": "object" - }, - "LogDestination": { - "additionalProperties": false, - "properties": { - "CloudWatchLogsLogGroup": { - "$ref": "#/definitions/CloudWatchLogsLogGroup" - } - }, - "type": "object" - }, - "LoggingConfiguration": { - "additionalProperties": false, - "properties": { - "Destinations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LogDestination" - }, - "minItems": 1, - "type": "array" - }, - "IncludeExecutionData": { - "type": "boolean" - }, - "Level": { - "enum": [ - "ALL", - "ERROR", - "FATAL", - "OFF" - ], - "type": "string" - } - }, - "type": "object" - }, - "S3Location": { - "additionalProperties": false, - "properties": { - "Bucket": { - "type": "string" - }, - "Key": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "required": [ - "Bucket", - "Key" - ], - "type": "object" - }, - "TagsEntry": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "TracingConfiguration": { - "additionalProperties": false, - "properties": { - "Enabled": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "states:CreateStateMachine", - "states:DescribeStateMachine", - "states:TagResource", - "iam:PassRole", - "s3:GetObject" - ] - }, - "delete": { - "permissions": [ - "states:DeleteStateMachine", - "states:DescribeStateMachine" - ] - }, - "list": { - "permissions": [ - "states:ListStateMachines" - ] - }, - "read": { - "permissions": [ - "states:DescribeStateMachine", - "states:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "states:UpdateStateMachine", - "states:TagResource", - "states:UntagResource", - "states:ListTagsForResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Definition": { - "$ref": "#/definitions/Definition" - }, - "DefinitionS3Location": { - "$ref": "#/definitions/S3Location" - }, - "DefinitionString": { - "maxLength": 1048576, - "minLength": 1, - "type": "string" - }, - "DefinitionSubstitutions": { - "$ref": "#/definitions/DefinitionSubstitutions" - }, - "LoggingConfiguration": { - "$ref": "#/definitions/LoggingConfiguration" - }, - "Name": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineName": { - "maxLength": 80, - "minLength": 1, - "type": "string" - }, - "StateMachineRevisionId": { - "maxLength": 256, - "minLength": 1, - "type": "string" - }, - "StateMachineType": { - "enum": [ - "STANDARD", - "EXPRESS" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/TagsEntry" - }, - "type": "array", - "uniqueItems": false - }, - "TracingConfiguration": { - "$ref": "#/definitions/TracingConfiguration" - } - }, - "readOnlyProperties": [ - "/properties/Arn", - "/properties/Name", - "/properties/StateMachineRevisionId" - ], - "required": [ - "RoleArn" - ], - "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::StateMachine", - "writeOnlyProperties": [ - "/properties/Definition", - "/properties/DefinitionS3Location", - "/properties/DefinitionSubstitutions" - ] -} 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 33e27fc95a..aef6c06b50 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py @@ -1104,6 +1104,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codeartifact-domain.json", @@ -1256,7 +1257,6 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", @@ -1390,6 +1390,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -1463,7 +1464,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1543,7 +1543,6 @@ "aws-msk-serverlesscluster.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py index 63ec2f1d3f..f1d6eae902 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py @@ -749,6 +749,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codebuild-project.json", @@ -769,6 +770,7 @@ "aws-cognito-userpoolidentityprovider.json", "aws-cognito-userpoolresourceserver.json", "aws-cognito-userpoolriskconfigurationattachment.json", + "aws-cognito-userpooluicustomizationattachment.json", "aws-cognito-userpooluser.json", "aws-cognito-userpoolusertogroupattachment.json", "aws-config-aggregationauthorization.json", @@ -780,7 +782,6 @@ "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -986,7 +987,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-layerversionpermission.json", @@ -1049,7 +1049,6 @@ "aws-organizations-resourcepolicy.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1178,6 +1177,7 @@ "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-statemachinealias.json", diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-cognito-userpooluicustomizationattachment.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-cognito-userpooluicustomizationattachment.json deleted file mode 100644 index 98baaf1ea2..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-cognito-userpooluicustomizationattachment.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/UserPoolId", - "/properties/ClientId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CSS": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "UserPoolId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "UserPoolId", - "ClientId" - ], - "typeName": "AWS::Cognito::UserPoolUICustomizationAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "typeName": "AWS::RDS::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-sso-instance.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-sso-instance.json deleted file mode 100644 index 26c2ca063a..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-sso-instance.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "[\\w+=,.@-]+", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[\\w+=,.@-]+", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sso:CreateInstance", - "sso:DescribeInstance", - "sso:TagResource", - "iam:CreateServiceLinkedRole", - "sso:TagInstance", - "sso:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "sso:DeleteInstance" - ] - }, - "list": { - "permissions": [ - "sso:ListInstances" - ] - }, - "read": { - "permissions": [ - "sso:DescribeInstance", - "sso:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "sso:UpdateInstance", - "sso:TagResource", - "sso:UntagResource", - "sso:ListTagsForResource", - "sso:TagInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/InstanceArn" - ], - "properties": { - "IdentityStoreId": { - "maxLength": 64, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "InstanceArn": { - "maxLength": 1224, - "minLength": 10, - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$", - "type": "string" - }, - "Name": { - "maxLength": 32, - "minLength": 1, - "pattern": "^[\\w+=,.@-]+$", - "type": "string" - }, - "OwnerAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d{12}?$", - "type": "string" - }, - "Status": { - "enum": [ - "CREATE_IN_PROGRESS", - "DELETE_IN_PROGRESS", - "ACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 75, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/InstanceArn", - "/properties/OwnerAccountId", - "/properties/IdentityStoreId", - "/properties/Status" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sso/aws-sso-instance", - "tagging": { - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SSO::Instance" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/__init__.py b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py index ce60c28a89..d3e015c914 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py @@ -752,6 +752,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codebuild-project.json", @@ -779,7 +780,6 @@ "aws-config-organizationconfigrule.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -975,6 +975,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -1034,7 +1035,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", "aws-lambda-layerversion.json", @@ -1073,7 +1073,6 @@ "aws-msk-configuration.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", @@ -1101,7 +1100,6 @@ "aws-pipes-pipe.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} 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..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_south_1/__init__.py b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py index 30f61c5674..58884e811d 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py @@ -930,6 +930,7 @@ "aws-cloudwatch-alarm.json", "aws-cloudwatch-anomalydetector.json", "aws-cloudwatch-compositealarm.json", + "aws-cloudwatch-dashboard.json", "aws-cloudwatch-insightrule.json", "aws-cloudwatch-metricstream.json", "aws-codebuild-project.json", @@ -952,6 +953,7 @@ "aws-cognito-userpoolidentityprovider.json", "aws-cognito-userpoolresourceserver.json", "aws-cognito-userpoolriskconfigurationattachment.json", + "aws-cognito-userpooluicustomizationattachment.json", "aws-cognito-userpooluser.json", "aws-cognito-userpoolusertogroupattachment.json", "aws-config-aggregationauthorization.json", @@ -964,7 +966,6 @@ "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -1187,6 +1188,7 @@ "aws-iam-group.json", "aws-iam-grouppolicy.json", "aws-iam-instanceprofile.json", + "aws-iam-oidcprovider.json", "aws-iam-policy.json", "aws-iam-role.json", "aws-iam-rolepolicy.json", @@ -1254,7 +1256,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1285,7 +1286,6 @@ "aws-msk-configuration.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbclusterparametergroup.json", "aws-neptune-dbinstance.json", "aws-neptune-dbparametergroup.json", @@ -1333,7 +1333,6 @@ "aws-pipes-pipe.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", @@ -1488,6 +1487,7 @@ "aws-sso-application.json", "aws-sso-applicationassignment.json", "aws-sso-assignment.json", + "aws-sso-instance.json", "aws-sso-instanceaccesscontrolattributeconfiguration.json", "aws-sso-permissionset.json", "aws-stepfunctions-statemachinealias.json", diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-cloudwatch-dashboard.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-cloudwatch-dashboard.json deleted file mode 100644 index 258074cf80..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-cloudwatch-dashboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DashboardName" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DashboardBody": { - "type": "string" - }, - "DashboardName": { - "type": "string" - }, - "Id": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DashboardBody" - ], - "typeName": "AWS::CloudWatch::Dashboard" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-cognito-userpooluicustomizationattachment.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-cognito-userpooluicustomizationattachment.json deleted file mode 100644 index 98baaf1ea2..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-cognito-userpooluicustomizationattachment.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/UserPoolId", - "/properties/ClientId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CSS": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "UserPoolId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "UserPoolId", - "ClientId" - ], - "typeName": "AWS::Cognito::UserPoolUICustomizationAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-iam-oidcprovider.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-iam-oidcprovider.json deleted file mode 100644 index 1794a452ca..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-iam-oidcprovider.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Url" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "delete": { - "permissions": [ - "iam:DeleteOpenIDConnectProvider" - ] - }, - "list": { - "permissions": [ - "iam:ListOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider" - ] - }, - "read": { - "permissions": [ - "iam:GetOpenIDConnectProvider" - ] - }, - "update": { - "permissions": [ - "iam:UpdateOpenIDConnectProviderThumbprint", - "iam:RemoveClientIDFromOpenIDConnectProvider", - "iam:AddClientIDToOpenIDConnectProvider", - "iam:GetOpenIDConnectProvider", - "iam:TagOpenIDConnectProvider", - "iam:UntagOpenIDConnectProvider", - "iam:ListOpenIDConnectProviderTags" - ] - } - }, - "primaryIdentifier": [ - "/properties/Arn" - ], - "properties": { - "Arn": { - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "ClientIdList": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "ThumbprintList": { - "insertionOrder": false, - "items": { - "maxLength": 40, - "minLength": 40, - "pattern": "[0-9A-Fa-f]{40}", - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "Url": { - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Arn" - ], - "required": [ - "ThumbprintList" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::IAM::OIDCProvider" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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_south_1/aws-sso-instance.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-sso-instance.json deleted file mode 100644 index 26c2ca063a..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-sso-instance.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "pattern": "[\\w+=,.@-]+", - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "pattern": "[\\w+=,.@-]+", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sso:CreateInstance", - "sso:DescribeInstance", - "sso:TagResource", - "iam:CreateServiceLinkedRole", - "sso:TagInstance", - "sso:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "sso:DeleteInstance" - ] - }, - "list": { - "permissions": [ - "sso:ListInstances" - ] - }, - "read": { - "permissions": [ - "sso:DescribeInstance", - "sso:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "sso:UpdateInstance", - "sso:TagResource", - "sso:UntagResource", - "sso:ListTagsForResource", - "sso:TagInstance", - "sso:DescribeInstance" - ] - } - }, - "primaryIdentifier": [ - "/properties/InstanceArn" - ], - "properties": { - "IdentityStoreId": { - "maxLength": 64, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "InstanceArn": { - "maxLength": 1224, - "minLength": 10, - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}$", - "type": "string" - }, - "Name": { - "maxLength": 32, - "minLength": 1, - "pattern": "^[\\w+=,.@-]+$", - "type": "string" - }, - "OwnerAccountId": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d{12}?$", - "type": "string" - }, - "Status": { - "enum": [ - "CREATE_IN_PROGRESS", - "DELETE_IN_PROGRESS", - "ACTIVE" - ], - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 75, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/InstanceArn", - "/properties/OwnerAccountId", - "/properties/IdentityStoreId", - "/properties/Status" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sso/aws-sso-instance", - "tagging": { - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::SSO::Instance" -} 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 8a62d0d557..2539101c1d 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py @@ -1606,7 +1606,6 @@ "aws-msk-replicator.json", "aws-msk-vpcconnection.json", "aws-mwaa-environment.json", - "aws-neptune-dbcluster.json", "aws-neptune-dbsubnetgroup.json", "aws-neptune-eventsubscription.json", "aws-networkfirewall-firewall.json", @@ -1638,7 +1637,6 @@ "aws-opsworks-userprofile.json", "aws-opsworks-volume.json", "aws-organizations-account.json", - "aws-organizations-organization.json", "aws-organizations-organizationalunit.json", "aws-organizations-policy.json", "aws-organizations-resourcepolicy.json", diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-neptune-dbcluster.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-neptune-dbcluster.json new file mode 100644 index 0000000000..589a788e8b --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-neptune-dbcluster.json @@ -0,0 +1,298 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/KmsKeyId", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "ServerlessScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "maximum": 128, + "minimum": 2.5, + "type": "number" + }, + "MinCapacity": { + "maximum": 128, + "minimum": 1, + "type": "number" + } + }, + "required": [ + "MinCapacity", + "MaxCapacity" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:RemoveFromGlobalCluster", + "rds:CreateDBClusterSnapshot", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters", + "rds:ListTagsForResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + "rds:DescribeDBSubnetGroups", + "rds:DescribeGlobalClusters", + "rds:ListTagsForResource", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "kms:CreateGrant", + "kms:DescribeKey" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AssociatedRoles": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AvailabilityZones": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BackupRetentionPeriod": { + "default": 1, + "minimum": 1, + "type": "integer" + }, + "ClusterResourceId": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBPort": { + "type": "integer" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "Endpoint": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReadEndpoint": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ServerlessScalingConfiguration": { + "$ref": "#/definitions/ServerlessScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "insertionOrder": true, + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)" + }, + "readOnlyProperties": [ + "/properties/Endpoint", + "/properties/ClusterResourceId", + "/properties/Port", + "/properties/ReadEndpoint" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-neptune", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Neptune::DBCluster", + "writeOnlyProperties": [ + "/properties/DBInstanceParameterGroupName", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/UseLatestRestorableTime" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-organizations-organization.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-organizations-organization.json new file mode 100644 index 0000000000..844033a13a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-organizations-organization.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "handlers": { + "create": { + "permissions": [ + "organizations:CreateOrganization", + "organizations:DescribeOrganization", + "iam:CreateServiceLinkedRole", + "organizations:ListRoots" + ] + }, + "delete": { + "permissions": [ + "organizations:DeleteOrganization", + "organizations:DescribeOrganization" + ] + }, + "list": { + "permissions": [ + "organizations:DescribeOrganization" + ] + }, + "read": { + "permissions": [ + "organizations:DescribeOrganization", + "organizations:ListRoots" + ] + }, + "update": { + "permissions": [ + "organizations:DescribeOrganization" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "^arn:aws.*:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}", + "type": "string" + }, + "FeatureSet": { + "default": "ALL", + "enum": [ + "ALL", + "CONSOLIDATED_BILLING" + ], + "type": "string" + }, + "Id": { + "pattern": "^o-[a-z0-9]{10,32}$", + "type": "string" + }, + "ManagementAccountArn": { + "pattern": "^arn:aws.*:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}", + "type": "string" + }, + "ManagementAccountEmail": { + "maxLength": 64, + "minLength": 6, + "pattern": "[^\\s@]+@[^\\s@]+\\.[^\\s@]+", + "type": "string" + }, + "ManagementAccountId": { + "pattern": "^\\d{12}$", + "type": "string" + }, + "RootId": { + "maxLength": 64, + "pattern": "^r-[0-9a-z]{4,32}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/ManagementAccountArn", + "/properties/ManagementAccountId", + "/properties/ManagementAccountEmail", + "/properties/RootId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-organizations.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Organizations::Organization" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-controltower-enabledcontrol.json index cae81c46bc..8f0be9c61f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-controltower-enabledcontrol.json @@ -78,6 +78,8 @@ }, "delete": { "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", "controltower:GetControlOperation", "controltower:DisableControl", "organizations:UpdatePolicy", diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-trafficmirrorfilterrule.json index 3138254086..ae180fb229 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-trafficmirrorfilterrule.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ec2-trafficmirrorfilterrule.json @@ -4,6 +4,22 @@ "/properties/TrafficMirrorFilterId" ], "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, "TrafficMirrorPortRange": { "additionalProperties": false, "properties": { @@ -15,8 +31,8 @@ } }, "required": [ - "ToPort", - "FromPort" + "FromPort", + "ToPort" ], "type": "object" } @@ -52,6 +68,13 @@ "SourcePortRange": { "$ref": "#/definitions/TrafficMirrorPortRange" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": false + }, "TrafficDirection": { "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-alias.json index 4a291518b6..e952d8b59e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-alias.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-lambda-alias.json @@ -9,6 +9,7 @@ "additionalProperties": false, "properties": { "AdditionalVersionWeights": { + "insertionOrder": false, "items": { "$ref": "#/definitions/VersionWeight" }, @@ -16,9 +17,6 @@ "uniqueItems": true } }, - "required": [ - "AdditionalVersionWeights" - ], "type": "object" }, "ProvisionedConcurrencyConfiguration": { @@ -50,10 +48,65 @@ "type": "object" } }, + "handlers": { + "create": { + "permissions": [ + "lambda:CreateAlias", + "lambda:PutProvisionedConcurrencyConfig", + "lambda:GetProvisionedConcurrencyConfig" + ], + "timeoutInMinutes": 45 + }, + "delete": { + "permissions": [ + "lambda:DeleteAlias", + "lambda:GetAlias" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "FunctionName": { + "$ref": "resource-schema.json#/properties/FunctionName" + } + }, + "required": [ + "FunctionName" + ] + }, + "permissions": [ + "lambda:ListAliases" + ] + }, + "read": { + "permissions": [ + "lambda:GetAlias", + "lambda:GetProvisionedConcurrencyConfig" + ] + }, + "update": { + "permissions": [ + "lambda:UpdateAlias", + "lambda:GetAlias", + "lambda:PutProvisionedConcurrencyConfig", + "lambda:DeleteProvisionedConcurrencyConfig", + "lambda:GetProvisionedConcurrencyConfig", + "codedeploy:CreateDeployment", + "codedeploy:GetDeployment", + "codedeploy:GetDeploymentGroup", + "codedeploy:GetDeploymentConfig", + "codedeploy:StopDeployment" + ], + "timeoutInMinutes": 120 + } + }, "primaryIdentifier": [ - "/properties/Id" + "/properties/AliasArn" ], "properties": { + "AliasArn": { + "type": "string" + }, "Description": { "type": "string" }, @@ -63,9 +116,6 @@ "FunctionVersion": { "type": "string" }, - "Id": { - "type": "string" - }, "Name": { "type": "string" }, @@ -76,13 +126,20 @@ "$ref": "#/definitions/AliasRoutingConfiguration" } }, + "propertyTransform": { + "/properties/FunctionName": "$split(FunctionName, \":\")[-1] $OR FunctionName" + }, "readOnlyProperties": [ - "/properties/Id" + "/properties/AliasArn" ], "required": [ "FunctionName", "FunctionVersion", "Name" ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-lambda", + "tagging": { + "taggable": false + }, "typeName": "AWS::Lambda::Alias" } diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbcluster.json index 3355402afa..fc8608c49b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-rds-dbcluster.json @@ -444,6 +444,17 @@ "/properties/StorageThroughput" ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, "typeName": "AWS::RDS::DBCluster", "writeOnlyProperties": [ "/properties/DBInstanceParameterGroupName", 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 3388ed60c9..2a91296c97 100644 --- a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py @@ -1487,7 +1487,6 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", @@ -1783,7 +1782,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -1840,6 +1838,7 @@ "aws-mediaconnect-flow.json", "aws-mediaconnect-flowentitlement.json", "aws-mediaconnect-flowoutput.json", + "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", "aws-mediaconnect-gateway.json", "aws-mediaconvert-jobtemplate.json", @@ -1957,7 +1956,6 @@ "aws-ram-permission.json", "aws-ram-resourceshare.json", "aws-rds-customdbengineversion.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-mediaconnect-flowsource.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-mediaconnect-flowsource.json deleted file mode 100644 index cf7d326061..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/aws-mediaconnect-flowsource.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "Encryption": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "enum": [ - "aes128", - "aes192", - "aes256" - ], - "type": "string" - }, - "ConstantInitializationVector": { - "type": "string" - }, - "DeviceId": { - "type": "string" - }, - "KeyType": { - "default": "static-key", - "enum": [ - "speke", - "static-key", - "srt-password" - ], - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceId": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecretArn": { - "type": "string" - }, - "Url": { - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "GatewayBridgeSource": { - "additionalProperties": false, - "properties": { - "BridgeArn": { - "type": "string" - }, - "VpcInterfaceAttachment": { - "$ref": "#/definitions/VpcInterfaceAttachment" - } - }, - "required": [ - "BridgeArn" - ], - "type": "object" - }, - "VpcInterfaceAttachment": { - "additionalProperties": false, - "properties": { - "VpcInterfaceName": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "mediaconnect:CreateFlow", - "mediaconnect:DescribeFlow", - "mediaconnect:AddFlowSources", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:RemoveFlowSource" - ] - }, - "list": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "update": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:UpdateFlowSource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SourceArn" - ], - "properties": { - "Decryption": { - "$ref": "#/definitions/Encryption" - }, - "Description": { - "type": "string" - }, - "EntitlementArn": { - "type": "string" - }, - "FlowArn": { - "type": "string" - }, - "GatewayBridgeSource": { - "$ref": "#/definitions/GatewayBridgeSource" - }, - "IngestIp": { - "type": "string" - }, - "IngestPort": { - "type": "integer" - }, - "MaxBitrate": { - "type": "integer" - }, - "MaxLatency": { - "default": 2000, - "type": "integer" - }, - "MinLatency": { - "default": 2000, - "type": "integer" - }, - "Name": { - "type": "string" - }, - "Protocol": { - "enum": [ - "zixi-push", - "rtp-fec", - "rtp", - "rist", - "srt-listener", - "srt-caller" - ], - "type": "string" - }, - "SenderControlPort": { - "type": "integer" - }, - "SenderIpAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "SourceIngestPort": { - "type": "string" - }, - "SourceListenerAddress": { - "type": "string" - }, - "SourceListenerPort": { - "type": "integer" - }, - "StreamId": { - "type": "string" - }, - "VpcInterfaceName": { - "type": "string" - }, - "WhitelistCidr": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IngestIp", - "/properties/SourceArn", - "/properties/SourceIngestPort" - ], - "required": [ - "Name", - "Description" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "typeName": "AWS::MediaConnect::FlowSource" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_east_2/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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/us_gov_east_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py index 8e047e7e2d..a7bb41f8a8 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 @@ -274,6 +274,7 @@ "AWS::EKS::Cluster", "AWS::EKS::IdentityProviderConfig", "AWS::EKS::Nodegroup", + "AWS::EKS::PodIdentityAssociation", "AWS::EMR::Cluster", "AWS::EMR::InstanceFleetConfig", "AWS::EMR::InstanceGroupConfig", @@ -779,7 +780,6 @@ "aws-config-remediationconfiguration.json", "aws-config-storedquery.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-datasync-agent.json", "aws-datasync-locationazureblob.json", @@ -854,14 +854,8 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", - "aws-ec2-transitgatewayconnect.json", - "aws-ec2-transitgatewaymulticastdomain.json", - "aws-ec2-transitgatewaymulticastdomainassociation.json", - "aws-ec2-transitgatewaymulticastgroupsource.json", - "aws-ec2-transitgatewaypeeringattachment.json", "aws-ec2-transitgatewayvpcattachment.json", "aws-ec2-verifiedaccessendpoint.json", "aws-ec2-verifiedaccessgroup.json", @@ -890,6 +884,7 @@ "aws-eks-cluster.json", "aws-eks-identityproviderconfig.json", "aws-eks-nodegroup.json", + "aws-eks-podidentityassociation.json", "aws-elasticache-cachecluster.json", "aws-elasticache-replicationgroup.json", "aws-elasticache-securitygroup.json", @@ -1012,7 +1007,6 @@ "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", "aws-lakeformation-resource.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-function.json", "aws-lambda-permission.json", @@ -1064,7 +1058,6 @@ "aws-organizations-resourcepolicy.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgateway.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgateway.json index f7b9088cb1..9646e8890c 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgateway.json +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgateway.json @@ -1,14 +1,7 @@ { "additionalProperties": false, "createOnlyProperties": [ - "/properties/DnsSupport", - "/properties/DefaultRouteTableAssociation", - "/properties/DefaultRouteTablePropagation", - "/properties/Tags", - "/properties/AutoAcceptSharedAttachments", "/properties/AmazonSideAsn", - "/properties/Description", - "/properties/VpnEcmpSupport", "/properties/MulticastSupport" ], "definitions": { @@ -29,13 +22,79 @@ "type": "object" } }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateTransitGateway", + "ec2:CreateTags", + "ec2:DescribeTransitGateways", + "ec2:DescribeTags", + "ec2:DeleteTransitGateway", + "ec2:DeleteTags", + "ec2:ModifyTransitGateway", + "ec2:ModifyTransitGatewayOptions" + ] + }, + "delete": { + "permissions": [ + "ec2:CreateTransitGateway", + "ec2:CreateTags", + "ec2:DescribeTransitGateways", + "ec2:DescribeTags", + "ec2:DeleteTransitGateway", + "ec2:DeleteTags", + "ec2:ModifyTransitGateway", + "ec2:ModifyTransitGatewayOptions" + ] + }, + "list": { + "permissions": [ + "ec2:CreateTransitGateway", + "ec2:CreateTags", + "ec2:DescribeTransitGateways", + "ec2:DescribeTags", + "ec2:DeleteTransitGateway", + "ec2:DeleteTags", + "ec2:ModifyTransitGateway", + "ec2:ModifyTransitGatewayOptions" + ] + }, + "read": { + "permissions": [ + "ec2:CreateTransitGateway", + "ec2:CreateTags", + "ec2:DescribeTransitGateways", + "ec2:DescribeTags", + "ec2:DeleteTransitGateway", + "ec2:DeleteTags", + "ec2:ModifyTransitGateway", + "ec2:ModifyTransitGatewayOptions" + ] + }, + "update": { + "permissions": [ + "ec2:CreateTransitGateway", + "ec2:CreateTags", + "ec2:DescribeTransitGateways", + "ec2:DescribeTags", + "ec2:DeleteTransitGateway", + "ec2:DeleteTags", + "ec2:ModifyTransitGateway", + "ec2:ModifyTransitGatewayOptions" + ] + } + }, "primaryIdentifier": [ "/properties/Id" ], "properties": { "AmazonSideAsn": { + "format": "int64", "type": "integer" }, + "AssociationDefaultRouteTableId": { + "type": "string" + }, "AutoAcceptSharedAttachments": { "type": "string" }, @@ -57,6 +116,9 @@ "MulticastSupport": { "type": "string" }, + "PropagationDefaultRouteTableId": { + "type": "string" + }, "Tags": { "items": { "$ref": "#/definitions/Tag" @@ -64,12 +126,30 @@ "type": "array", "uniqueItems": false }, + "TransitGatewayArn": { + "type": "string" + }, + "TransitGatewayCidrBlocks": { + "items": { + "type": "string" + }, + "type": "array" + }, "VpnEcmpSupport": { "type": "string" } }, "readOnlyProperties": [ - "/properties/Id" + "/properties/Id", + "/properties/TransitGatewayArn" ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, "typeName": "AWS::EC2::TransitGateway" } diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewayattachment.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewayattachment.json index ac1cace626..789a5d24cb 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewayattachment.json +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewayattachment.json @@ -112,6 +112,10 @@ "SubnetIds": { "insertionOrder": false, "items": { + "relationshipRef": { + "propertyPath": "/properties/SubnetId", + "typeName": "AWS::EC2::Subnet" + }, "type": "string" }, "type": "array", diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewayconnect.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewayconnect.json new file mode 100644 index 0000000000..0b97bf0b93 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewayconnect.json @@ -0,0 +1,111 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransportTransitGatewayAttachmentId", + "/properties/Options" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "TransitGatewayConnectOptions": { + "additionalProperties": false, + "properties": { + "Protocol": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateTransitGatewayConnect", + "ec2:DescribeTransitGatewayConnects", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteTransitGatewayConnect", + "ec2:DescribeTransitGatewayConnects", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayConnects" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayConnects" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayConnects", + "ec2:DeleteTags", + "ec2:CreateTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/TransitGatewayAttachmentId" + ], + "properties": { + "CreationTime": { + "type": "string" + }, + "Options": { + "$ref": "#/definitions/TransitGatewayConnectOptions" + }, + "State": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayId": { + "type": "string" + }, + "TransportTransitGatewayAttachmentId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TransitGatewayAttachmentId", + "/properties/State", + "/properties/CreationTime", + "/properties/TransitGatewayId" + ], + "required": [ + "TransportTransitGatewayAttachmentId", + "Options" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-myservice", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayConnect" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaymulticastdomain.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaymulticastdomain.json new file mode 100644 index 0000000000..f399f1e5fb --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaymulticastdomain.json @@ -0,0 +1,113 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeTransitGatewayMulticastDomains", + "ec2:CreateTransitGatewayMulticastDomain", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeTransitGatewayMulticastDomains", + "ec2:DeleteTransitGatewayMulticastDomain", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayMulticastDomains" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayMulticastDomains" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayMulticastDomains", + "ec2:DeleteTags", + "ec2:CreateTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/TransitGatewayMulticastDomainId" + ], + "properties": { + "CreationTime": { + "format": "date-time", + "type": "string" + }, + "Options": { + "additionalProperties": false, + "properties": { + "AutoAcceptSharedAssociations": { + "type": "string" + }, + "Igmpv2Support": { + "type": "string" + }, + "StaticSourcesSupport": { + "type": "string" + } + }, + "type": "object" + }, + "State": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + }, + "TransitGatewayMulticastDomainArn": { + "type": "string" + }, + "TransitGatewayMulticastDomainId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TransitGatewayMulticastDomainId", + "/properties/State", + "/properties/CreationTime", + "/properties/TransitGatewayMulticastDomainArn" + ], + "required": [ + "TransitGatewayId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway/aws-ec2-transitgatewaymulticastdomain", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayMulticastDomain" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaymulticastdomainassociation.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaymulticastdomainassociation.json new file mode 100644 index 0000000000..c8140e4cdc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaymulticastdomainassociation.json @@ -0,0 +1,75 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayMulticastDomainId", + "/properties/TransitGatewayAttachmentId", + "/properties/SubnetId" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateTransitGatewayMulticastDomain", + "ec2:GetTransitGatewayMulticastDomainAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DisassociateTransitGatewayMulticastDomain", + "ec2:GetTransitGatewayMulticastDomainAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:GetTransitGatewayMulticastDomainAssociations" + ] + }, + "read": { + "permissions": [ + "ec2:GetTransitGatewayMulticastDomainAssociations" + ] + } + }, + "primaryIdentifier": [ + "/properties/TransitGatewayMulticastDomainId", + "/properties/TransitGatewayAttachmentId", + "/properties/SubnetId" + ], + "properties": { + "ResourceId": { + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "State": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayMulticastDomainId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/ResourceId", + "/properties/ResourceType", + "/properties/State" + ], + "required": [ + "TransitGatewayMulticastDomainId", + "TransitGatewayAttachmentId", + "SubnetId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-myservice", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::EC2::TransitGatewayMulticastDomainAssociation" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaymulticastgroupsource.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaymulticastgroupsource.json new file mode 100644 index 0000000000..739b00c6b2 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaymulticastgroupsource.json @@ -0,0 +1,101 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayMulticastDomainId", + "/properties/GroupIpAddress", + "/properties/NetworkInterfaceId" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:RegisterTransitGatewayMulticastGroupSources", + "ec2:SearchTransitGatewayMulticastGroups" + ] + }, + "delete": { + "permissions": [ + "ec2:DeregisterTransitGatewayMulticastGroupSources", + "ec2:SearchTransitGatewayMulticastGroups" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TransitGatewayMulticastDomainId": { + "$ref": "resource-schema.json#/properties/TransitGatewayMulticastDomainId" + } + }, + "required": [ + "TransitGatewayMulticastDomainId" + ] + }, + "permissions": [ + "ec2:SearchTransitGatewayMulticastGroups" + ] + }, + "read": { + "permissions": [ + "ec2:SearchTransitGatewayMulticastGroups" + ] + } + }, + "primaryIdentifier": [ + "/properties/TransitGatewayMulticastDomainId", + "/properties/GroupIpAddress", + "/properties/NetworkInterfaceId" + ], + "properties": { + "GroupIpAddress": { + "type": "string" + }, + "GroupMember": { + "type": "boolean" + }, + "GroupSource": { + "type": "boolean" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "SourceType": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayMulticastDomainId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/SubnetId", + "/properties/ResourceId", + "/properties/ResourceType", + "/properties/GroupSource", + "/properties/GroupMember", + "/properties/SourceType", + "/properties/TransitGatewayAttachmentId" + ], + "required": [ + "TransitGatewayMulticastDomainId", + "NetworkInterfaceId", + "GroupIpAddress" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgatewaymulticastdomain/aws-ec2-transitgatewaymulticastgroupsource", + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::EC2::TransitGatewayMulticastGroupSource" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaypeeringattachment.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaypeeringattachment.json new file mode 100644 index 0000000000..ba526d86c9 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ec2-transitgatewaypeeringattachment.json @@ -0,0 +1,125 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TransitGatewayId", + "/properties/PeerTransitGatewayId", + "/properties/PeerRegion", + "/properties/PeerAccountId" + ], + "definitions": { + "PeeringAttachmentStatus": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "string" + }, + "Message": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "ec2:CreateTransitGatewayPeeringAttachment", + "ec2:DescribeTransitGatewayPeeringAttachments", + "ec2:CreateTags" + ] + }, + "delete": { + "permissions": [ + "ec2:DeleteTransitGatewayPeeringAttachment", + "ec2:DescribeTransitGatewayPeeringAttachments", + "ec2:DeleteTags" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeTransitGatewayPeeringAttachments" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeTransitGatewayPeeringAttachments" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeTransitGatewayPeeringAttachments", + "ec2:CreateTags", + "ec2:DeleteTags" + ] + } + }, + "primaryIdentifier": [ + "/properties/TransitGatewayAttachmentId" + ], + "properties": { + "CreationTime": { + "format": "date-time", + "type": "string" + }, + "PeerAccountId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerTransitGatewayId": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Status": { + "$ref": "#/definitions/PeeringAttachmentStatus" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TransitGatewayAttachmentId", + "/properties/Status", + "/properties/State", + "/properties/CreationTime" + ], + "required": [ + "TransitGatewayId", + "PeerTransitGatewayId", + "PeerAccountId", + "PeerRegion" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-myservice", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::EC2::TransitGatewayPeeringAttachment" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-gammadilithium-jobdefinition.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-gammadilithium-jobdefinition.json index 2917648238..780b18237c 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-gammadilithium-jobdefinition.json +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-gammadilithium-jobdefinition.json @@ -612,6 +612,9 @@ "EcsProperties": { "$ref": "#/definitions/EcsProperties" }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, "InstanceTypes": { "items": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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/us_gov_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py index 729ec0d726..b0b810d217 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py @@ -318,6 +318,7 @@ "AWS::EKS::Cluster", "AWS::EKS::IdentityProviderConfig", "AWS::EKS::Nodegroup", + "AWS::EKS::PodIdentityAssociation", "AWS::EMR::Cluster", "AWS::EMR::InstanceFleetConfig", "AWS::EMR::InstanceGroupConfig", @@ -897,6 +898,7 @@ "aws-cognito-userpoolgroup.json", "aws-cognito-userpoolidentityprovider.json", "aws-cognito-userpoolresourceserver.json", + "aws-cognito-userpooluicustomizationattachment.json", "aws-cognito-userpooluser.json", "aws-cognito-userpoolusertogroupattachment.json", "aws-config-configurationaggregator.json", @@ -927,7 +929,6 @@ "aws-connect-view.json", "aws-connect-viewversion.json", "aws-controltower-enabledbaseline.json", - "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-databrew-dataset.json", "aws-databrew-job.json", @@ -1009,7 +1010,6 @@ "aws-ec2-subnetnetworkaclassociation.json", "aws-ec2-subnetroutetableassociation.json", "aws-ec2-trafficmirrorfilter.json", - "aws-ec2-trafficmirrorfilterrule.json", "aws-ec2-trafficmirrorsession.json", "aws-ec2-trafficmirrortarget.json", "aws-ec2-transitgateway.json", @@ -1045,6 +1045,7 @@ "aws-eks-cluster.json", "aws-eks-identityproviderconfig.json", "aws-eks-nodegroup.json", + "aws-eks-podidentityassociation.json", "aws-elasticache-cachecluster.json", "aws-elasticache-replicationgroup.json", "aws-elasticache-securitygroup.json", @@ -1192,7 +1193,6 @@ "aws-lakeformation-datalakesettings.json", "aws-lakeformation-permissions.json", "aws-lakeformation-resource.json", - "aws-lambda-alias.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-function.json", "aws-lambda-permission.json", @@ -1273,7 +1273,6 @@ "aws-quicksight-vpcconnection.json", "aws-ram-permission.json", "aws-ram-resourceshare.json", - "aws-rds-dbcluster.json", "aws-rds-dbclusterparametergroup.json", "aws-rds-dbinstance.json", "aws-rds-dbparametergroup.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-userpooluicustomizationattachment.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-userpooluicustomizationattachment.json deleted file mode 100644 index 98baaf1ea2..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-cognito-userpooluicustomizationattachment.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/UserPoolId", - "/properties/ClientId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "CSS": { - "type": "string" - }, - "ClientId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "UserPoolId": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "UserPoolId", - "ClientId" - ], - "typeName": "AWS::Cognito::UserPoolUICustomizationAttachment" -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..cae81c46bc --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,183 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "minItems": 1, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ], + "timeoutInMinutes": 720 + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-trafficmirrorfilterrule.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-trafficmirrorfilterrule.json new file mode 100644 index 0000000000..3138254086 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ec2-trafficmirrorfilterrule.json @@ -0,0 +1,74 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TrafficMirrorFilterId" + ], + "definitions": { + "TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + } + }, + "required": [ + "ToPort", + "FromPort" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "Id": { + "type": "string" + }, + "Protocol": { + "type": "integer" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "integer" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "RuleAction", + "SourceCidrBlock", + "RuleNumber", + "DestinationCidrBlock", + "TrafficMirrorFilterId", + "TrafficDirection" + ], + "typeName": "AWS::EC2::TrafficMirrorFilterRule" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-gammadilithium-jobdefinition.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-gammadilithium-jobdefinition.json index 2917648238..780b18237c 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-gammadilithium-jobdefinition.json +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-gammadilithium-jobdefinition.json @@ -612,6 +612,9 @@ "EcsProperties": { "$ref": "#/definitions/EcsProperties" }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, "InstanceTypes": { "items": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbcluster.json new file mode 100644 index 0000000000..3355402afa --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-rds-dbcluster.json @@ -0,0 +1,458 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "definitions": { + "DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "integer" + }, + "MinCapacity": { + "type": "integer" + }, + "SecondsBeforeTimeout": { + "type": "integer" + }, + "SecondsUntilAutoPause": { + "type": "integer" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + }, + "delete": { + "permissions": [ + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] + }, + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 + } + }, + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "properties": { + "AllocatedStorage": { + "type": "integer" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/DBClusterRole" + }, + "type": "array", + "uniqueItems": true + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "BacktrackWindow": { + "minimum": 0, + "type": "integer" + }, + "BackupRetentionPeriod": { + "default": 1, + "maximum": 35, + "minimum": 1, + "type": "integer" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterArn": { + "type": "string" + }, + "DBClusterIdentifier": { + "maxLength": 63, + "minLength": 1, + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "default": "default.aurora5.6", + "type": "string" + }, + "DBClusterResourceId": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "EnableGlobalWriteForwarding": { + "type": "boolean" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineLifecycleSupport": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "maxLength": 63, + "minLength": 0, + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "type": "string" + }, + "Iops": { + "type": "integer" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/MasterUserSecret" + }, + "MasterUsername": { + "minLength": 1, + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "type": "string" + }, + "MonitoringInterval": { + "default": 0, + "type": "integer" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "default": "full-copy", + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "integer" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array", + "uniqueItems": true + } + }, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) = 'aurora-postgresql' ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "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/us_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py index 33797fa9a9..58bce5fe34 100644 --- a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py @@ -1454,7 +1454,6 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", - "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-gammadilithium-jobdefinition.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-gammadilithium-jobdefinition.json index 2917648238..780b18237c 100644 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-gammadilithium-jobdefinition.json +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-gammadilithium-jobdefinition.json @@ -612,6 +612,9 @@ "EcsProperties": { "$ref": "#/definitions/EcsProperties" }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, "InstanceTypes": { "items": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-lambda-alias.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-lambda-alias.json new file mode 100644 index 0000000000..4a291518b6 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-lambda-alias.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/FunctionName" + ], + "definitions": { + "AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/VersionWeight" + }, + "type": "array", + "uniqueItems": true + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "integer" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AliasRoutingConfiguration" + } + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "typeName": "AWS::Lambda::Alias" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/__init__.py b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py index 289523d3bc..80beb03292 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py @@ -1123,6 +1123,7 @@ "AWS::SageMaker::ImageVersion", "AWS::SageMaker::InferenceComponent", "AWS::SageMaker::InferenceExperiment", + "AWS::SageMaker::MlflowTrackingServer", "AWS::SageMaker::Model", "AWS::SageMaker::ModelBiasJobDefinition", "AWS::SageMaker::ModelCard", @@ -1546,6 +1547,7 @@ "aws-connect-viewversion.json", "aws-connectcampaigns-campaign.json", "aws-controltower-enabledbaseline.json", + "aws-controltower-enabledcontrol.json", "aws-controltower-landingzone.json", "aws-customerprofiles-calculatedattributedefinition.json", "aws-customerprofiles-domain.json", @@ -2004,6 +2006,7 @@ "aws-lakeformation-resource.json", "aws-lakeformation-tag.json", "aws-lakeformation-tagassociation.json", + "aws-lambda-alias.json", "aws-lambda-codesigningconfig.json", "aws-lambda-eventinvokeconfig.json", "aws-lambda-eventsourcemapping.json", @@ -2064,6 +2067,7 @@ "aws-mediaconnect-flow.json", "aws-mediaconnect-flowentitlement.json", "aws-mediaconnect-flowoutput.json", + "aws-mediaconnect-flowsource.json", "aws-mediaconnect-flowvpcinterface.json", "aws-mediaconnect-gateway.json", "aws-mediaconvert-jobtemplate.json", @@ -2157,7 +2161,6 @@ "aws-opsworks-volume.json", "aws-opsworkscm-server.json", "aws-organizations-account.json", - "aws-organizations-organization.json", "aws-organizations-organizationalunit.json", "aws-organizations-policy.json", "aws-organizations-resourcepolicy.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-mediaconnect-flowsource.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-mediaconnect-flowsource.json deleted file mode 100644 index cf7d326061..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-mediaconnect-flowsource.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "Encryption": { - "additionalProperties": false, - "properties": { - "Algorithm": { - "enum": [ - "aes128", - "aes192", - "aes256" - ], - "type": "string" - }, - "ConstantInitializationVector": { - "type": "string" - }, - "DeviceId": { - "type": "string" - }, - "KeyType": { - "default": "static-key", - "enum": [ - "speke", - "static-key", - "srt-password" - ], - "type": "string" - }, - "Region": { - "type": "string" - }, - "ResourceId": { - "type": "string" - }, - "RoleArn": { - "type": "string" - }, - "SecretArn": { - "type": "string" - }, - "Url": { - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "GatewayBridgeSource": { - "additionalProperties": false, - "properties": { - "BridgeArn": { - "type": "string" - }, - "VpcInterfaceAttachment": { - "$ref": "#/definitions/VpcInterfaceAttachment" - } - }, - "required": [ - "BridgeArn" - ], - "type": "object" - }, - "VpcInterfaceAttachment": { - "additionalProperties": false, - "properties": { - "VpcInterfaceName": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "mediaconnect:CreateFlow", - "mediaconnect:DescribeFlow", - "mediaconnect:AddFlowSources", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:RemoveFlowSource" - ] - }, - "list": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeFlow" - ] - }, - "update": { - "permissions": [ - "mediaconnect:DescribeFlow", - "mediaconnect:UpdateFlowSource" - ] - } - }, - "primaryIdentifier": [ - "/properties/SourceArn" - ], - "properties": { - "Decryption": { - "$ref": "#/definitions/Encryption" - }, - "Description": { - "type": "string" - }, - "EntitlementArn": { - "type": "string" - }, - "FlowArn": { - "type": "string" - }, - "GatewayBridgeSource": { - "$ref": "#/definitions/GatewayBridgeSource" - }, - "IngestIp": { - "type": "string" - }, - "IngestPort": { - "type": "integer" - }, - "MaxBitrate": { - "type": "integer" - }, - "MaxLatency": { - "default": 2000, - "type": "integer" - }, - "MinLatency": { - "default": 2000, - "type": "integer" - }, - "Name": { - "type": "string" - }, - "Protocol": { - "enum": [ - "zixi-push", - "rtp-fec", - "rtp", - "rist", - "srt-listener", - "srt-caller" - ], - "type": "string" - }, - "SenderControlPort": { - "type": "integer" - }, - "SenderIpAddress": { - "type": "string" - }, - "SourceArn": { - "type": "string" - }, - "SourceIngestPort": { - "type": "string" - }, - "SourceListenerAddress": { - "type": "string" - }, - "SourceListenerPort": { - "type": "integer" - }, - "StreamId": { - "type": "string" - }, - "VpcInterfaceName": { - "type": "string" - }, - "WhitelistCidr": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/IngestIp", - "/properties/SourceArn", - "/properties/SourceIngestPort" - ], - "required": [ - "Name", - "Description" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "typeName": "AWS::MediaConnect::FlowSource" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-organizations-organization.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-organizations-organization.json new file mode 100644 index 0000000000..844033a13a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-organizations-organization.json @@ -0,0 +1,88 @@ +{ + "additionalProperties": false, + "handlers": { + "create": { + "permissions": [ + "organizations:CreateOrganization", + "organizations:DescribeOrganization", + "iam:CreateServiceLinkedRole", + "organizations:ListRoots" + ] + }, + "delete": { + "permissions": [ + "organizations:DeleteOrganization", + "organizations:DescribeOrganization" + ] + }, + "list": { + "permissions": [ + "organizations:DescribeOrganization" + ] + }, + "read": { + "permissions": [ + "organizations:DescribeOrganization", + "organizations:ListRoots" + ] + }, + "update": { + "permissions": [ + "organizations:DescribeOrganization" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "pattern": "^arn:aws.*:organizations::\\d{12}:organization\\/o-[a-z0-9]{10,32}", + "type": "string" + }, + "FeatureSet": { + "default": "ALL", + "enum": [ + "ALL", + "CONSOLIDATED_BILLING" + ], + "type": "string" + }, + "Id": { + "pattern": "^o-[a-z0-9]{10,32}$", + "type": "string" + }, + "ManagementAccountArn": { + "pattern": "^arn:aws.*:organizations::\\d{12}:account\\/o-[a-z0-9]{10,32}\\/\\d{12}", + "type": "string" + }, + "ManagementAccountEmail": { + "maxLength": 64, + "minLength": 6, + "pattern": "[^\\s@]+@[^\\s@]+\\.[^\\s@]+", + "type": "string" + }, + "ManagementAccountId": { + "pattern": "^\\d{12}$", + "type": "string" + }, + "RootId": { + "maxLength": 64, + "pattern": "^r-[0-9a-z]{4,32}$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/ManagementAccountArn", + "/properties/ManagementAccountId", + "/properties/ManagementAccountEmail", + "/properties/RootId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-organizations.git", + "tagging": { + "taggable": false + }, + "typeName": "AWS::Organizations::Organization" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-mlflowtrackingserver.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-mlflowtrackingserver.json new file mode 100644 index 0000000000..84791991d5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-sagemaker-mlflowtrackingserver.json @@ -0,0 +1,152 @@ +{ + "additionalProperties": false, + "conditionalCreateOnlyProperties": [ + "/properties/MlflowVersion", + "/properties/RoleArn" + ], + "createOnlyProperties": [ + "/properties/TrackingServerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "sagemaker:CreateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:AddTags", + "sagemaker:ListTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + }, + "delete": { + "permissions": [ + "sagemaker:DeleteMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer" + ], + "timeoutInMinutes": 65 + }, + "list": { + "permissions": [ + "sagemaker:ListMlflowTrackingServers" + ] + }, + "read": { + "permissions": [ + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags" + ] + }, + "update": { + "permissions": [ + "sagemaker:UpdateMlflowTrackingServer", + "sagemaker:DescribeMlflowTrackingServer", + "sagemaker:ListTags", + "sagemaker:AddTags", + "sagemaker:DeleteTags", + "iam:PassRole" + ], + "timeoutInMinutes": 65 + } + }, + "primaryIdentifier": [ + "/properties/TrackingServerName" + ], + "properties": { + "ArtifactStoreUri": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^s3:\\/\\/([^\\/]+)\\/?(.*)$", + "type": "string" + }, + "AutomaticModelRegistration": { + "type": "boolean" + }, + "MlflowVersion": { + "maxLength": 32, + "minLength": 1, + "pattern": "^\\d+(\\.\\d+)+$", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role\\/?[a-zA-Z_0-9+=,.@\\-_\\/]+$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TrackingServerArn": { + "maxLength": 2048, + "pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:mlflow-tracking-server/.*$", + "type": "string" + }, + "TrackingServerName": { + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}$", + "type": "string" + }, + "TrackingServerSize": { + "enum": [ + "Small", + "Medium", + "Large" + ], + "type": "string" + }, + "WeeklyMaintenanceWindowStart": { + "maxLength": 9, + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun):([01]\\d|2[0-3]):([0-5]\\d)$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TrackingServerArn" + ], + "required": [ + "TrackingServerName", + "ArtifactStoreUri", + "RoleArn" + ], + "tagging": { + "cloudFormationSystemTags": false, + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags", + "sagemaker:DeleteTags" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::SageMaker::MlflowTrackingServer" +}