diff --git a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json index b7d000cfd2..522eb92b3e 100644 --- a/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/227d6e59c86482f7153466759080e65963a1bf4413531ad420ff60a5a0d7965d.meta.json @@ -1 +1 @@ -{"etag": "\"d86dac5be15c65fc9d69f9ce57021a39\"", "url": "https://schema.cloudformation.me-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"bc8b903d893fd8d1faa20752731e7f6c\"", "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 1666735d6e..5251bef81e 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"cab7c18393919e17ef44d9fca8c62008\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"77f8f0ff694760d9d86001ab4dca1909\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json index 401cdadb31..4aaa344695 100644 --- a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json @@ -1 +1 @@ -{"etag": "\"081ab5175646b6357afd33378944d98a\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"dc5404a772c15b8a68868a65ba15544f\"", "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 161a4c1028..eb74d3dac6 100644 --- a/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/42e9df95722b6524cd001503b6750b86f60a7b5acfc406ebb10d5748cbb8ed41.meta.json @@ -1 +1 @@ -{"etag": "\"6ae36848ad74ca3105f1377a35305a68\"", "url": "https://schema.cloudformation.us-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c56a8a5d2e628612f524187501577893\"", "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 c00599e96f..27f387929d 100644 --- a/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/4fbb29b69678acdd32c5758ed43ead9bf35136af536e92a84ccbaf062c315066.meta.json @@ -1 +1 @@ -{"etag": "\"aaec615c9d17bca9639fc85e7f5417c5\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"1cf3966c0b851cceaf2c43737516f6bc\"", "url": "https://schema.cloudformation.eu-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json index e4828932e1..10f836912a 100644 --- a/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/81e1cc73ff2daf7d1e1eca393c2d1fdd98ac34d4109512e0e0947ef752dcb9c9.meta.json @@ -1 +1 @@ -{"etag": "\"2329af4dc82a5bb397a97b6ff5bb5140\"", "url": "https://schema.cloudformation.ap-southeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"2953b2130f61e477a2cca97c933c7e58\"", "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 443dbc4fd3..0fecd296c0 100644 --- a/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8adeabf0a09b37a8ed924aea799005947e4a4542365d35fd75466abcf306eeca.meta.json @@ -1 +1 @@ -{"etag": "\"642274f1b902fa08157ccca7f8ebc916\"", "url": "https://schema.cloudformation.ap-northeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c0ccb1515dc61c6dfdfdc9fc581dc78c\"", "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 9df12112fa..0cdc2bed0d 100644 --- a/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/8b8b0cee4df1ef0947a8289e8ec0c67869b7533eabab32ecfc0a00cb19e55a5f.meta.json @@ -1 +1 @@ -{"etag": "\"82953168abb7fcfd4e0bece24229e8bc\"", "url": "https://schema.cloudformation.ap-southeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"e3e6971ddb1d7074935f1a3a0401793f\"", "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 ab82a48936..29c4a06fd8 100644 --- a/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/b1f069477cd577cde04dfe1b323c0bb0e783fe32b6bb6b13774c32fcca1d303a.meta.json @@ -1 +1 @@ -{"etag": "\"19d64679dc6517ed552203d89c568d02\"", "url": "https://schema.cloudformation.ap-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"31700fd8a370285e8b40e508ed95cc66\"", "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 40b2c83099..85646aecb2 100644 --- a/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/c7ada205073390b33b7593ef8f304b9705f2567698dfdfa979bf0ccdb68cb856.meta.json @@ -1 +1 @@ -{"etag": "\"b042c1566c6a396b8a8c96a7e0c98f08\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"60754739767993c2810368068dbcc157\"", "url": "https://schema.cloudformation.sa-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json index 3d9afa9bc4..2195b762dd 100644 --- a/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d8e41d35f4f8922b66525dea2c66d72a73ff097c685cda0a63c08a6416dc58ed.meta.json @@ -1 +1 @@ -{"etag": "\"9aac5a850660c85b1be687f9f74e1273\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"c6afc35dcb4060472288f5f79ace93c7\"", "url": "https://schema.cloudformation.eu-central-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json index dcff54770a..f6da0d683c 100644 --- a/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e5301e07e25fa2c35d2c7e1f9dcf720826b315ef6f38515840537c02de23abe2.meta.json @@ -1 +1 @@ -{"etag": "\"de18136d6aea454757b3fd02ad993f3c\"", "url": "https://schema.cloudformation.ca-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b49a9caf8598f62ed28fe33a2518820c\"", "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 9755bc002f..e48e7b48e9 100644 --- a/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/e8b3dacc1675b478e8c7392b51f41467cf908a34e6b4c3fb3e97e2b584f651ca.meta.json @@ -1 +1 @@ -{"etag": "\"7d7e65889665bafa9538f690a093f8fd\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"4bc172340dbd2e7ed79f5ea7813f51d3\"", "url": "https://schema.cloudformation.eu-west-3.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json index 4a60a72587..82c981dadb 100644 --- a/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f49718b210ea89ff182ae51cb7004366b9e2e4d5e38136a5be83b6a55e7a82a1.meta.json @@ -1 +1 @@ -{"etag": "\"a7dbad34f3f2e92d95834810cdb81fac\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"12afd8a5ebea6e0353fbb5dc5b1c9112\"", "url": "https://schema.cloudformation.ap-south-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json index b027324dbe..533fbcb314 100644 --- a/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f6f35a459759d6c132fa2fe798cefbd5b2d398fe33547eed780b9b70f10eb4a2.meta.json @@ -1 +1 @@ -{"etag": "\"8cba15e9bf02f9e39faf695df5d2405e\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"181aede7280dd536c360729bef58da02\"", "url": "https://schema.cloudformation.il-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json index bce302098b..7361cfda26 100644 --- a/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ff02b7d808c1c00053f09aa43a50addf3b69878d351cffd417dc9a457df808af.meta.json @@ -1 +1 @@ -{"etag": "\"3d70d37afc36ae4775cfeca5f2da076a\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0e03e16190480ec990f94ee81d553509\"", "url": "https://schema.cloudformation.ap-northeast-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_crawler/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_crawler/tags.json index d2747fbfd4..00da84113e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_crawler/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_crawler/tags.json @@ -10,23 +10,11 @@ "op": "replace", "path": "/properties/Tags", "value": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } } ] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_customentitytype/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_customentitytype/tags.json index d2747fbfd4..00da84113e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_customentitytype/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_customentitytype/tags.json @@ -10,23 +10,11 @@ "op": "replace", "path": "/properties/Tags", "value": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } } ] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_dataqualityruleset/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_dataqualityruleset/tags.json index d2747fbfd4..00da84113e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_dataqualityruleset/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_dataqualityruleset/tags.json @@ -10,23 +10,11 @@ "op": "replace", "path": "/properties/Tags", "value": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } } ] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/tags.json index d2747fbfd4..00da84113e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/tags.json @@ -10,23 +10,11 @@ "op": "replace", "path": "/properties/Tags", "value": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } } ] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/tags.json index d2747fbfd4..00da84113e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/tags.json @@ -10,23 +10,11 @@ "op": "replace", "path": "/properties/Tags", "value": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } } ] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_mltransform/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_mltransform/tags.json index d2747fbfd4..00da84113e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_mltransform/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_mltransform/tags.json @@ -10,23 +10,11 @@ "op": "replace", "path": "/properties/Tags", "value": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } } ] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/tags.json index d2747fbfd4..00da84113e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/tags.json @@ -10,23 +10,11 @@ "op": "replace", "path": "/properties/Tags", "value": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } } ] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/tags.json index d2747fbfd4..00da84113e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/tags.json @@ -10,23 +10,11 @@ "op": "replace", "path": "/properties/Tags", "value": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } } ] 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 a6ac2e7955..81e53a5fb9 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -755,6 +755,7 @@ "AWS::DataBrew::Job", "AWS::EC2::TransitGatewayPeeringAttachment", "AWS::Connect::Queue", + "AWS::ECR::RepositoryCreationTemplate", "AWS::QuickSight::Template", "AWS::CloudFront::CachePolicy", "AWS::AppIntegrations::DataIntegration", @@ -845,6 +846,7 @@ "aws-s3outposts-accesspoint.json", "aws-ec2-ipampoolcidr.json", "aws-redshift-clustersubnetgroup.json", + "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-apigateway-model.json", "aws-apigatewayv2-integrationresponse.json", @@ -886,6 +888,7 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", @@ -1025,6 +1028,7 @@ "aws-ec2-route.json", "aws-fis-experimenttemplate.json", "aws-cloudformation-hookversion.json", + "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-wafv2-loggingconfiguration.json", @@ -1262,6 +1266,7 @@ "aws-emr-cluster.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", + "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", "aws-chatbot-slackchannelconfiguration.json", @@ -1507,6 +1512,7 @@ "aws-databrew-job.json", "aws-ec2-transitgatewaypeeringattachment.json", "aws-connect-queue.json", + "aws-ecr-repositorycreationtemplate.json", "aws-quicksight-template.json", "aws-cloudfront-cachepolicy.json", "aws-appintegrations-dataintegration.json", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-controltower-enabledcontrol.json deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-controltower-enabledcontrol.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "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" - ] - }, - "delete": { - "permissions": [ - "controltower:GetControlOperation", - "controltower:DisableControl", - "organizations:UpdatePolicy", - "organizations:DeletePolicy", - "organizations:CreatePolicy", - "organizations:AttachPolicy", - "organizations:DetachPolicy", - "organizations:ListPoliciesForTarget", - "organizations:ListTargetsForPolicy", - "organizations:DescribePolicy" - ] - }, - "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" - ] - } - }, - "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/af_south_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json deleted file mode 100644 index e0756eb08e..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbcluster.json +++ /dev/null @@ -1,503 +0,0 @@ -{ - "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": { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::IAM::Role" - }, - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "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: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": { - "default": 0, - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::EC2::SecurityGroup" - } - } - ], - "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/af_south_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbinstance.json deleted file mode 100644 index d92125d3b5..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,670 +0,0 @@ -{ - "additionalProperties": false, - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationKmsKeyId": { - "type": "string" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/AutomaticBackupReplicationKmsKeyId", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rolesanywhere-profile.json deleted file mode 100644 index 9781637c58..0000000000 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-rolesanywhere-profile.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AttributeMapping": { - "additionalProperties": false, - "properties": { - "CertificateField": { - "$ref": "#/definitions/CertificateField" - }, - "MappingRules": { - "items": { - "$ref": "#/definitions/MappingRule" - }, - "type": "array" - } - }, - "required": [ - "CertificateField", - "MappingRules" - ], - "type": "object" - }, - "CertificateField": { - "enum": [ - "x509Subject", - "x509Issuer", - "x509SAN" - ], - "type": "string" - }, - "MappingRule": { - "additionalProperties": false, - "properties": { - "Specifier": { - "type": "string" - } - }, - "required": [ - "Specifier" - ], - "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": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:CreateProfile", - "rolesanywhere:TagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - }, - "delete": { - "permissions": [ - "rolesanywhere:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "rolesanywhere:ListProfiles", - "rolesanywhere:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "rolesanywhere:GetProfile", - "rolesanywhere:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:GetProfile", - "rolesanywhere:UpdateProfile", - "rolesanywhere:EnableProfile", - "rolesanywhere:DisableProfile", - "rolesanywhere:TagResource", - "rolesanywhere:UntagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "AttributeMappings": { - "items": { - "$ref": "#/definitions/AttributeMapping" - }, - "type": "array" - }, - "DurationSeconds": { - "maximum": 43200, - "minimum": 900, - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "ProfileArn": { - "type": "string" - }, - "ProfileId": { - "pattern": "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", - "type": "string" - }, - "RequireInstanceProperties": { - "type": "boolean" - }, - "RoleArns": { - "items": { - "maxLength": 1011, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "SessionPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProfileId", - "/properties/ProfileArn" - ], - "required": [ - "Name", - "RoleArns" - ], - "typeName": "AWS::RolesAnywhere::Profile" -} 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 66218c54df..c090df74d1 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -740,6 +740,7 @@ "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "AWS::DataBrew::Job", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", "AWS::RDS::DBSubnetGroup", @@ -866,6 +867,7 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-macie-customdataidentifier.json", "aws-route53-recordset.json", @@ -1008,6 +1010,7 @@ "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", + "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", "aws-servicecatalog-launchtemplateconstraint.json", @@ -1168,6 +1171,7 @@ "aws-systemsmanagersap-application.json", "aws-dms-replicationtask.json", "aws-ec2-routetable.json", + "aws-mediaconnect-gateway.json", "aws-rds-dbproxyendpoint.json", "aws-datasync-locationsmb.json", "aws-resiliencehub-app.json", @@ -1483,6 +1487,7 @@ "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-databrew-job.json", "aws-ec2-transitgatewaypeeringattachment.json", + "aws-ecr-repositorycreationtemplate.json", "aws-cloudfront-cachepolicy.json", "aws-iam-accesskey.json", "aws-rds-dbsubnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-controltower-enabledcontrol.json deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-controltower-enabledcontrol.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "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" - ] - }, - "delete": { - "permissions": [ - "controltower:GetControlOperation", - "controltower:DisableControl", - "organizations:UpdatePolicy", - "organizations:DeletePolicy", - "organizations:CreatePolicy", - "organizations:AttachPolicy", - "organizations:DetachPolicy", - "organizations:ListPoliciesForTarget", - "organizations:ListTargetsForPolicy", - "organizations:DescribePolicy" - ] - }, - "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" - ] - } - }, - "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_east_1/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-mediaconnect-gateway.json deleted file mode 100644 index 3cab25d209..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-mediaconnect-gateway.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/EgressCidrBlocks", - "/properties/Networks", - "/properties/Networks/*/Name", - "/properties/Networks/*/CidrBlock" - ], - "definitions": { - "GatewayNetwork": { - "additionalProperties": false, - "properties": { - "CidrBlock": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Name", - "CidrBlock" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateServiceLinkedRole", - "mediaconnect:CreateGateway", - "mediaconnect:DescribeGateway" - ] - }, - "delete": { - "permissions": [ - "iam:CreateServiceLinkedRole", - "mediaconnect:DescribeGateway", - "mediaconnect:DeleteGateway" - ] - }, - "list": { - "permissions": [ - "mediaconnect:ListGateways" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeGateway" - ] - } - }, - "primaryIdentifier": [ - "/properties/GatewayArn" - ], - "properties": { - "EgressCidrBlocks": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "GatewayArn": { - "type": "string" - }, - "GatewayState": { - "enum": [ - "CREATING", - "ACTIVE", - "UPDATING", - "ERROR", - "DELETING", - "DELETED" - ], - "type": "string" - }, - "Name": { - "type": "string" - }, - "Networks": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/GatewayNetwork" - }, - "maxItems": 4, - "minItems": 1, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/GatewayArn", - "/properties/GatewayState" - ], - "required": [ - "Name", - "EgressCidrBlocks", - "Networks" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::MediaConnect::Gateway" -} diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rolesanywhere-profile.json deleted file mode 100644 index 9781637c58..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-rolesanywhere-profile.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AttributeMapping": { - "additionalProperties": false, - "properties": { - "CertificateField": { - "$ref": "#/definitions/CertificateField" - }, - "MappingRules": { - "items": { - "$ref": "#/definitions/MappingRule" - }, - "type": "array" - } - }, - "required": [ - "CertificateField", - "MappingRules" - ], - "type": "object" - }, - "CertificateField": { - "enum": [ - "x509Subject", - "x509Issuer", - "x509SAN" - ], - "type": "string" - }, - "MappingRule": { - "additionalProperties": false, - "properties": { - "Specifier": { - "type": "string" - } - }, - "required": [ - "Specifier" - ], - "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": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:CreateProfile", - "rolesanywhere:TagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - }, - "delete": { - "permissions": [ - "rolesanywhere:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "rolesanywhere:ListProfiles", - "rolesanywhere:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "rolesanywhere:GetProfile", - "rolesanywhere:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:GetProfile", - "rolesanywhere:UpdateProfile", - "rolesanywhere:EnableProfile", - "rolesanywhere:DisableProfile", - "rolesanywhere:TagResource", - "rolesanywhere:UntagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "AttributeMappings": { - "items": { - "$ref": "#/definitions/AttributeMapping" - }, - "type": "array" - }, - "DurationSeconds": { - "maximum": 43200, - "minimum": 900, - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "ProfileArn": { - "type": "string" - }, - "ProfileId": { - "pattern": "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", - "type": "string" - }, - "RequireInstanceProperties": { - "type": "boolean" - }, - "RoleArns": { - "items": { - "maxLength": 1011, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "SessionPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProfileId", - "/properties/ProfileArn" - ], - "required": [ - "Name", - "RoleArns" - ], - "typeName": "AWS::RolesAnywhere::Profile" -} 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 5647c66fd2..3197e32277 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -1281,7 +1281,6 @@ "aws-dms-instanceprofile.json", "aws-opensearchserverless-vpcendpoint.json", "aws-quicksight-datasource.json", - "aws-iot-cacertificate.json", "aws-ec2-networkaclentry.json", "aws-robomaker-simulationapplicationversion.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", @@ -1556,6 +1555,7 @@ "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", + "aws-rolesanywhere-profile.json", "aws-refactorspaces-environment.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", @@ -1615,7 +1615,6 @@ "aws-mediapackagev2-channel.json", "aws-appintegrations-eventintegration.json", "aws-batch-schedulingpolicy.json", - "aws-iot-authorizer.json", "aws-timestream-influxdbinstance.json", "aws-mediaconnect-bridgesource.json", "aws-mediapackagev2-channelpolicy.json", @@ -1736,7 +1735,6 @@ "aws-servicecatalog-tagoption.json", "aws-servicediscovery-privatednsnamespace.json", "aws-servicecatalog-launchroleconstraint.json", - "aws-iot-rolealias.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-secretsmanager-resourcepolicy.json", "aws-cloudformation-hookdefaultversion.json", @@ -1933,7 +1931,6 @@ "aws-xray-group.json", "aws-lookoutvision-project.json", "aws-oam-link.json", - "aws-iot-domainconfiguration.json", "aws-sagemaker-endpoint.json", "aws-elasticloadbalancingv2-truststorerevocation.json", "aws-networkfirewall-firewall.json", @@ -2010,7 +2007,6 @@ "aws-servicecatalog-portfolio.json", "aws-workspacesweb-truststore.json", "aws-customerprofiles-domain.json", - "aws-iot-policy.json", "aws-aps-scraper.json", "aws-ec2-transitgatewayroute.json", "aws-ssm-maintenancewindow.json", @@ -2125,7 +2121,6 @@ "aws-greengrass-subscriptiondefinitionversion.json", "aws-appconfig-extension.json", "aws-lex-resourcepolicy.json", - "aws-osis-pipeline.json", "aws-elasticloadbalancingv2-listenerrule.json", "aws-elasticloadbalancingv2-truststore.json", "aws-glue-registry.json", @@ -2154,7 +2149,6 @@ "aws-ivs-storageconfiguration.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", - "aws-iot-certificateprovider.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", @@ -2254,7 +2248,6 @@ "aws-ec2-securitygroupingress.json", "aws-guardduty-detector.json", "aws-sagemaker-modelqualityjobdefinition.json", - "aws-iot-provisioningtemplate.json", "aws-personalize-schema.json", "aws-appflow-flow.json", "aws-apigateway-stage.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-authorizer.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-authorizer.json new file mode 100644 index 0000000000..4fd44d03a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-authorizer.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SigningDisabled", + "/properties/AuthorizerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DeleteAuthorizer", + "iot:DescribeAuthorizer" + ] + }, + "list": { + "permissions": [ + "iot:ListAuthorizers" + ] + }, + "read": { + "permissions": [ + "iot:DescribeAuthorizer", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AuthorizerName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerFunctionArn": { + "type": "string" + }, + "AuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "EnableCachingForHttp": { + "type": "boolean" + }, + "SigningDisabled": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TokenKeyName": { + "type": "string" + }, + "TokenSigningPublicKeys": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9:_-]+": { + "maxLength": 5120, + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "AuthorizerFunctionArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-cacertificate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-cacertificate.json new file mode 100644 index 0000000000..7c56105907 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-cacertificate.json @@ -0,0 +1,174 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/CertificateMode", + "/properties/CACertificatePem" + ], + "definitions": { + "RegistrationConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "TemplateBody": { + "maxLength": 10240, + "minLength": 0, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:RegisterCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateCACertificate", + "iot:DeleteCACertificate", + "iot:DescribeCACertificate" + ] + }, + "list": { + "permissions": [ + "iot:ListCACertificates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCACertificate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AutoRegistrationStatus": { + "enum": [ + "ENABLE", + "DISABLE" + ], + "type": "string" + }, + "CACertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "CertificateMode": { + "enum": [ + "DEFAULT", + "SNI_ONLY" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "RegistrationConfig": { + "$ref": "#/definitions/RegistrationConfig" + }, + "RemoveAutoRegistration": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VerificationCertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "CACertificatePem", + "Status" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CACertificate", + "writeOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/RemoveAutoRegistration" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-certificateprovider.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-certificateprovider.json new file mode 100644 index 0000000000..ea4c9d9f71 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-certificateprovider.json @@ -0,0 +1,125 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateProviderName" + ], + "definitions": { + "CertificateProviderOperation": { + "enum": [ + "CreateCertificateFromCsr" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteCertificateProvider", + "iot:DescribeCertificateProvider" + ] + }, + "list": { + "permissions": [ + "iot:ListCertificateProviders" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCertificateProvider", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/CertificateProviderName" + ], + "properties": { + "AccountDefaultForOperations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CertificateProviderOperation" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Arn": { + "type": "string" + }, + "CertificateProviderName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "LambdaFunctionArn": { + "maxLength": 170, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "LambdaFunctionArn", + "AccountDefaultForOperations" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CertificateProvider" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-domainconfiguration.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-domainconfiguration.json new file mode 100644 index 0000000000..03db5c565e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-domainconfiguration.json @@ -0,0 +1,224 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainConfigurationName", + "/properties/DomainName", + "/properties/ServiceType", + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ], + "definitions": { + "AuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AllowAuthorizerOverride": { + "type": "boolean" + }, + "DefaultAuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w=,@-]+$", + "type": "string" + } + }, + "type": "object" + }, + "ServerCertificateConfig": { + "additionalProperties": false, + "properties": { + "EnableOCSPCheck": { + "type": "boolean" + } + }, + "type": "object" + }, + "ServerCertificateSummary": { + "additionalProperties": false, + "properties": { + "ServerCertificateArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "ServerCertificateStatus": { + "enum": [ + "INVALID", + "VALID" + ], + "type": "string" + }, + "ServerCertificateStatusDetail": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "SecurityPolicy": { + "maxLength": 128, + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateDomainConfiguration", + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:TagResource", + "iot:ListTagsForResource", + "acm:GetCertificate" + ] + }, + "delete": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:DeleteDomainConfiguration", + "iot:UpdateDomainConfiguration" + ] + }, + "list": { + "permissions": [ + "iot:ListDomainConfigurations" + ] + }, + "read": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource", + "iot:TagResource", + "iot:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainConfigurationName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerConfig": { + "$ref": "#/definitions/AuthorizerConfig" + }, + "DomainConfigurationName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w.-]+$", + "type": "string" + }, + "DomainConfigurationStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "DomainName": { + "maxLength": 253, + "minLength": 1, + "type": "string" + }, + "DomainType": { + "enum": [ + "ENDPOINT", + "AWS_MANAGED", + "CUSTOMER_MANAGED" + ], + "type": "string" + }, + "ServerCertificateArns": { + "insertionOrder": true, + "items": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "ServerCertificateConfig": { + "$ref": "#/definitions/ServerCertificateConfig" + }, + "ServerCertificates": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ServerCertificateSummary" + }, + "type": "array" + }, + "ServiceType": { + "enum": [ + "DATA", + "CREDENTIAL_PROVIDER", + "JOBS" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + }, + "ValidationCertificateArn": { + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DomainType", + "/properties/ServerCertificates" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::DomainConfiguration", + "writeOnlyProperties": [ + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-policy.json new file mode 100644 index 0000000000..6a8b285974 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-policy.json @@ -0,0 +1,110 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreatePolicy", + "iot:GetPolicy", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeletePolicy", + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:DeletePolicyVersion" + ] + }, + "list": { + "permissions": [ + "iot:ListPolicies" + ] + }, + "read": { + "permissions": [ + "iot:GetPolicy", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:CreatePolicyVersion", + "iot:DeletePolicyVersion", + "iot:SetDefaultPolicyVersion", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "maxLength": 404600, + "minLength": 1, + "type": [ + "object", + "string" + ] + }, + "PolicyName": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "PolicyDocument" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-provisioningtemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-provisioningtemplate.json new file mode 100644 index 0000000000..31a4f45b65 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-provisioningtemplate.json @@ -0,0 +1,141 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TemplateName", + "/properties/TemplateType" + ], + "definitions": { + "ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateProvisioningTemplate", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteProvisioningTemplate", + "iot:DescribeProvisioningTemplate" + ] + }, + "list": { + "permissions": [ + "iot:ListProvisioningTemplates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeProvisioningTemplate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateProvisioningTemplate", + "iot:CreateProvisioningTemplateVersion", + "iot:ListProvisioningTemplateVersions", + "iot:DeleteProvisioningTemplateVersion", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TemplateName" + ], + "properties": { + "Description": { + "maxLength": 500, + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TemplateArn": { + "type": "string" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + }, + "TemplateType": { + "enum": [ + "FLEET_PROVISIONING", + "JITP" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TemplateArn" + ], + "required": [ + "ProvisioningRoleArn", + "TemplateBody" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::ProvisioningTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-rolealias.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-rolealias.json new file mode 100644 index 0000000000..5ea03cb1af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-iot-rolealias.json @@ -0,0 +1,124 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RoleAlias" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteRoleAlias", + "iot:DescribeRoleAlias" + ] + }, + "list": { + "permissions": [ + "iot:ListRoleAliases" + ] + }, + "read": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:DescribeRoleAlias", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RoleAlias" + ], + "properties": { + "CredentialDurationSeconds": { + "default": 3600, + "maximum": 43200, + "minimum": 900, + "type": "integer" + }, + "RoleAlias": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleAliasArn": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/RoleAliasArn" + ], + "required": [ + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::RoleAlias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-osis-pipeline.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-osis-pipeline.json new file mode 100644 index 0000000000..62c5a43529 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-osis-pipeline.json @@ -0,0 +1,290 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PipelineName" + ], + "definitions": { + "BufferOptions": { + "additionalProperties": false, + "properties": { + "PersistentBufferEnabled": { + "type": "boolean" + } + }, + "required": [ + "PersistentBufferEnabled" + ], + "type": "object" + }, + "EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "KmsKeyArn": { + "type": "string" + } + }, + "required": [ + "KmsKeyArn" + ], + "type": "object" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "properties": { + "CloudWatchLogDestination": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "maxLength": 512, + "minLength": 1, + "pattern": "\\/aws\\/vendedlogs\\/[\\.\\-_/#A-Za-z0-9]+", + "type": "string" + } + }, + "required": [ + "LogGroup" + ], + "type": "object" + }, + "IsLoggingEnabled": { + "type": "boolean" + } + }, + "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" + }, + "VpcEndpoint": { + "additionalProperties": false, + "properties": { + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "format": "AWS::EC2::VPC.Id", + "type": "string" + }, + "VpcOptions": { + "$ref": "#/definitions/VpcOptions" + } + }, + "type": "object" + }, + "VpcOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "format": "AWS::EC2::SecurityGroup.Ids", + "insertionOrder": false, + "items": { + "format": "AWS::EC2::SecurityGroup.GroupId", + "maxLength": 20, + "minLength": 11, + "pattern": "sg-\\w{8}(\\w{9})?", + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "insertionOrder": false, + "items": { + "maxLength": 24, + "minLength": 15, + "pattern": "subnet-\\w{8}(\\w{9})?", + "type": "string" + }, + "type": "array" + }, + "VpcAttachmentOptions": { + "additionalProperties": false, + "properties": { + "AttachToVpc": { + "type": "boolean" + }, + "CidrBlock": { + "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/(3[0-2]|[12]?[0-9])$", + "type": "string" + } + }, + "required": [ + "AttachToVpc", + "CidrBlock" + ], + "type": "object" + }, + "VpcEndpointManagement": { + "enum": [ + "CUSTOMER", + "SERVICE" + ], + "type": "string" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "osis:CreatePipeline", + "osis:GetPipeline", + "osis:TagResource", + "osis:ListTagsForResource", + "iam:PassRole", + "iam:CreateServiceLinkedRole", + "logs:CreateLogDelivery", + "kms:DescribeKey" + ] + }, + "delete": { + "permissions": [ + "osis:DeletePipeline", + "osis:GetPipeline", + "logs:GetLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries" + ] + }, + "list": { + "permissions": [ + "osis:ListPipelines" + ] + }, + "read": { + "permissions": [ + "osis:GetPipeline", + "osis:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "osis:UpdatePipeline", + "osis:GetPipeline", + "osis:ListTagsForResource", + "osis:TagResource", + "osis:UntagResource", + "iam:PassRole", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:ListLogDeliveries", + "kms:DescribeKey" + ] + } + }, + "primaryIdentifier": [ + "/properties/PipelineArn" + ], + "properties": { + "BufferOptions": { + "$ref": "#/definitions/BufferOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/EncryptionAtRestOptions" + }, + "IngestEndpointUrls": { + "insertionOrder": false, + "items": { + "type": "string" + }, + "type": "array" + }, + "LogPublishingOptions": { + "$ref": "#/definitions/LogPublishingOptions" + }, + "MaxUnits": { + "maximum": 384, + "minimum": 1, + "type": "integer" + }, + "MinUnits": { + "maximum": 384, + "minimum": 1, + "type": "integer" + }, + "PipelineArn": { + "maxLength": 76, + "minLength": 46, + "pattern": "^arn:(aws|aws\\-cn|aws\\-us\\-gov|aws\\-iso|aws\\-iso\\-b):osis:.+:pipeline\\/.+$", + "type": "string" + }, + "PipelineConfigurationBody": { + "maxLength": 24000, + "minLength": 1, + "type": "string" + }, + "PipelineName": { + "maxLength": 28, + "minLength": 3, + "pattern": "[a-z][a-z0-9\\-]+", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VpcEndpointService": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "VpcEndpoints": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/VpcEndpoint" + }, + "type": "array" + }, + "VpcOptions": { + "$ref": "#/definitions/VpcOptions" + } + }, + "readOnlyProperties": [ + "/properties/PipelineArn", + "/properties/IngestEndpointUrls", + "/properties/VpcEndpoints", + "/properties/VpcEndpointService" + ], + "required": [ + "MaxUnits", + "MinUnits", + "PipelineConfigurationBody", + "PipelineName" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-osis.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::OSIS::Pipeline", + "writeOnlyProperties": [ + "/properties/VpcOptions" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rolesanywhere-profile.json deleted file mode 100644 index 9781637c58..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rolesanywhere-profile.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AttributeMapping": { - "additionalProperties": false, - "properties": { - "CertificateField": { - "$ref": "#/definitions/CertificateField" - }, - "MappingRules": { - "items": { - "$ref": "#/definitions/MappingRule" - }, - "type": "array" - } - }, - "required": [ - "CertificateField", - "MappingRules" - ], - "type": "object" - }, - "CertificateField": { - "enum": [ - "x509Subject", - "x509Issuer", - "x509SAN" - ], - "type": "string" - }, - "MappingRule": { - "additionalProperties": false, - "properties": { - "Specifier": { - "type": "string" - } - }, - "required": [ - "Specifier" - ], - "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": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:CreateProfile", - "rolesanywhere:TagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - }, - "delete": { - "permissions": [ - "rolesanywhere:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "rolesanywhere:ListProfiles", - "rolesanywhere:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "rolesanywhere:GetProfile", - "rolesanywhere:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:GetProfile", - "rolesanywhere:UpdateProfile", - "rolesanywhere:EnableProfile", - "rolesanywhere:DisableProfile", - "rolesanywhere:TagResource", - "rolesanywhere:UntagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "AttributeMappings": { - "items": { - "$ref": "#/definitions/AttributeMapping" - }, - "type": "array" - }, - "DurationSeconds": { - "maximum": 43200, - "minimum": 900, - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "ProfileArn": { - "type": "string" - }, - "ProfileId": { - "pattern": "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", - "type": "string" - }, - "RequireInstanceProperties": { - "type": "boolean" - }, - "RoleArns": { - "items": { - "maxLength": 1011, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "SessionPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProfileId", - "/properties/ProfileArn" - ], - "required": [ - "Name", - "RoleArns" - ], - "typeName": "AWS::RolesAnywhere::Profile" -} 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 21605666d6..073402a840 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -1034,6 +1034,7 @@ "AWS::DataBrew::Job", "AWS::EC2::TransitGatewayPeeringAttachment", "AWS::Connect::Queue", + "AWS::ECR::RepositoryCreationTemplate", "AWS::QuickSight::Template", "AWS::CloudFront::CachePolicy", "AWS::AppIntegrations::DataIntegration", @@ -1161,6 +1162,7 @@ "aws-amplify-branch.json", "aws-kafkaconnect-workerconfiguration.json", "aws-redshift-clustersubnetgroup.json", + "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-lightsail-bucket.json", "aws-apigateway-model.json", @@ -1215,6 +1217,7 @@ "aws-cleanrooms-analysistemplate.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-lightsail-container.json", "aws-s3-accessgrantsinstance.json", @@ -1662,8 +1665,10 @@ "aws-systemsmanagersap-application.json", "aws-dms-replicationtask.json", "aws-ec2-routetable.json", + "aws-mediaconnect-gateway.json", "aws-rds-dbproxyendpoint.json", "aws-datasync-locationsmb.json", + "aws-resiliencehub-app.json", "aws-securityhub-standard.json", "aws-rolesanywhere-crl.json", "aws-cleanrooms-privacybudgettemplate.json", @@ -1752,6 +1757,7 @@ "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", "aws-customerprofiles-eventstream.json", + "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", "aws-lightsail-certificate.json", @@ -2108,6 +2114,7 @@ "aws-databrew-job.json", "aws-ec2-transitgatewaypeeringattachment.json", "aws-connect-queue.json", + "aws-ecr-repositorycreationtemplate.json", "aws-quicksight-template.json", "aws-cloudfront-cachepolicy.json", "aws-appintegrations-dataintegration.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-controltower-enabledcontrol.json deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-controltower-enabledcontrol.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "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" - ] - }, - "delete": { - "permissions": [ - "controltower:GetControlOperation", - "controltower:DisableControl", - "organizations:UpdatePolicy", - "organizations:DeletePolicy", - "organizations:CreatePolicy", - "organizations:AttachPolicy", - "organizations:DetachPolicy", - "organizations:ListPoliciesForTarget", - "organizations:ListTargetsForPolicy", - "organizations:DescribePolicy" - ] - }, - "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" - ] - } - }, - "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_northeast_2/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-mediaconnect-gateway.json deleted file mode 100644 index 3cab25d209..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-mediaconnect-gateway.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/EgressCidrBlocks", - "/properties/Networks", - "/properties/Networks/*/Name", - "/properties/Networks/*/CidrBlock" - ], - "definitions": { - "GatewayNetwork": { - "additionalProperties": false, - "properties": { - "CidrBlock": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Name", - "CidrBlock" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateServiceLinkedRole", - "mediaconnect:CreateGateway", - "mediaconnect:DescribeGateway" - ] - }, - "delete": { - "permissions": [ - "iam:CreateServiceLinkedRole", - "mediaconnect:DescribeGateway", - "mediaconnect:DeleteGateway" - ] - }, - "list": { - "permissions": [ - "mediaconnect:ListGateways" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeGateway" - ] - } - }, - "primaryIdentifier": [ - "/properties/GatewayArn" - ], - "properties": { - "EgressCidrBlocks": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "GatewayArn": { - "type": "string" - }, - "GatewayState": { - "enum": [ - "CREATING", - "ACTIVE", - "UPDATING", - "ERROR", - "DELETING", - "DELETED" - ], - "type": "string" - }, - "Name": { - "type": "string" - }, - "Networks": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/GatewayNetwork" - }, - "maxItems": 4, - "minItems": 1, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/GatewayArn", - "/properties/GatewayState" - ], - "required": [ - "Name", - "EgressCidrBlocks", - "Networks" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::MediaConnect::Gateway" -} 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 deleted file mode 100644 index e0756eb08e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbcluster.json +++ /dev/null @@ -1,503 +0,0 @@ -{ - "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": { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::IAM::Role" - }, - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "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: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": { - "default": 0, - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::EC2::SecurityGroup" - } - } - ], - "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_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbinstance.json deleted file mode 100644 index d92125d3b5..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rds-dbinstance.json +++ /dev/null @@ -1,670 +0,0 @@ -{ - "additionalProperties": false, - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationKmsKeyId": { - "type": "string" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/AutomaticBackupReplicationKmsKeyId", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-resiliencehub-app.json deleted file mode 100644 index 0c20764ed8..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-resiliencehub-app.json +++ /dev/null @@ -1,288 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EventSubscription": { - "additionalProperties": false, - "properties": { - "EventType": { - "enum": [ - "ScheduledAssessmentFailure", - "DriftDetected" - ], - "type": "string" - }, - "Name": { - "maxLength": 256, - "type": "string" - }, - "SnsTopicArn": { - "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}$", - "type": "string" - } - }, - "required": [ - "Name", - "EventType" - ], - "type": "object" - }, - "IamRoleArn": { - "pattern": "arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):iam::[0-9]{12}:role\\/(([\\u0021-\\u007E]+\\u002F){1,511})?[A-Za-z0-9+=,.@_/-]{1,64}$", - "type": "string" - }, - "PermissionModel": { - "additionalProperties": false, - "properties": { - "CrossAccountRoleArns": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IamRoleArn" - }, - "type": "array", - "uniqueItems": false - }, - "InvokerRoleName": { - "pattern": "((\\u002F[\\u0021-\\u007E]+\\u002F){1,511})?[A-Za-z0-9+=,.@_/-]{1,64}", - "type": "string" - }, - "Type": { - "enum": [ - "LegacyIAMUser", - "RoleBased" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "PhysicalResourceId": { - "additionalProperties": false, - "properties": { - "AwsAccountId": { - "pattern": "^[0-9]{12}$", - "type": "string" - }, - "AwsRegion": { - "pattern": "^[a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]$", - "type": "string" - }, - "Identifier": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "Type": { - "pattern": "Arn|Native", - "type": "string" - } - }, - "required": [ - "Identifier", - "Type" - ], - "type": "object" - }, - "ResourceMapping": { - "additionalProperties": false, - "properties": { - "EksSourceName": { - "type": "string" - }, - "LogicalStackName": { - "type": "string" - }, - "MappingType": { - "pattern": "CfnStack|Resource|Terraform|EKS", - "type": "string" - }, - "PhysicalResourceId": { - "$ref": "#/definitions/PhysicalResourceId" - }, - "ResourceName": { - "pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$", - "type": "string" - }, - "TerraformSourceName": { - "type": "string" - } - }, - "required": [ - "MappingType", - "PhysicalResourceId" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "$ref": "#/definitions/TagValue" - } - }, - "type": "object" - }, - "TagValue": { - "maxLength": 256, - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "s3:GetBucketLocation", - "s3:GetObject", - "s3:ListAllMyBuckets", - "autoscaling:DescribeAutoScalingGroups", - "apigateway:GET", - "ec2:Describe*", - "ecs:DescribeServices", - "eks:DescribeCluster", - "elasticfilesystem:DescribeFileSystems", - "elasticloadbalancing:DescribeLoadBalancers", - "lambda:GetFunction*", - "rds:Describe*", - "dynamodb:Describe*", - "sqs:GetQueueAttributes", - "sns:GetTopicAttributes", - "route53:List*", - "iam:PassRole", - "resiliencehub:*" - ] - }, - "delete": { - "permissions": [ - "resiliencehub:DeleteApp", - "resiliencehub:UntagResource", - "resiliencehub:ListApps" - ] - }, - "list": { - "permissions": [ - "resiliencehub:ListApps" - ] - }, - "read": { - "permissions": [ - "resiliencehub:DescribeApp", - "resiliencehub:DescribeAppVersionTemplate", - "resiliencehub:ListAppVersionResourceMappings", - "resiliencehub:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "s3:GetBucketLocation", - "s3:GetObject", - "s3:ListAllMyBuckets", - "autoscaling:DescribeAutoScalingGroups", - "apigateway:GET", - "ec2:Describe*", - "ecs:DescribeServices", - "eks:DescribeCluster", - "elasticfilesystem:DescribeFileSystems", - "elasticloadbalancing:DescribeLoadBalancers", - "lambda:GetFunction*", - "rds:Describe*", - "dynamodb:Describe*", - "sqs:GetQueueAttributes", - "sns:GetTopicAttributes", - "route53:List*", - "iam:PassRole", - "resiliencehub:*" - ] - } - }, - "primaryIdentifier": [ - "/properties/AppArn" - ], - "properties": { - "AppArn": { - "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$", - "type": "string" - }, - "AppAssessmentSchedule": { - "enum": [ - "Disabled", - "Daily" - ], - "type": "string" - }, - "AppTemplateBody": { - "maxLength": 409600, - "minLength": 0, - "pattern": "^[\\w\\s:,-\\.'\\/{}\\[\\]:\"]+$", - "type": "string" - }, - "Description": { - "maxLength": 500, - "minLength": 0, - "type": "string" - }, - "DriftStatus": { - "enum": [ - "NotChecked", - "NotDetected", - "Detected" - ], - "type": "string" - }, - "EventSubscriptions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EventSubscription" - }, - "type": "array", - "uniqueItems": false - }, - "Name": { - "pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$", - "type": "string" - }, - "PermissionModel": { - "$ref": "#/definitions/PermissionModel" - }, - "ResiliencyPolicyArn": { - "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$", - "type": "string" - }, - "ResourceMappings": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ResourceMapping" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "$ref": "#/definitions/TagMap" - } - }, - "readOnlyProperties": [ - "/properties/AppArn", - "/properties/DriftStatus" - ], - "required": [ - "Name", - "AppTemplateBody", - "ResourceMappings" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-resiliencehub", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ResilienceHub::App" -} 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 dabc28d775..5df86d1753 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -559,6 +559,7 @@ "AWS::EC2::IPAM", "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", "AWS::RDS::DBSubnetGroup", @@ -661,6 +662,7 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", @@ -757,6 +759,7 @@ "aws-cloudformation-stackset.json", "aws-ec2-route.json", "aws-cloudformation-hookversion.json", + "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-wafv2-loggingconfiguration.json", @@ -1097,6 +1100,7 @@ "aws-ec2-ipam.json", "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-ec2-transitgatewaypeeringattachment.json", + "aws-ecr-repositorycreationtemplate.json", "aws-cloudfront-cachepolicy.json", "aws-rds-dbsubnetgroup.json", "aws-amazonmq-configuration.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-controltower-enabledcontrol.json deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-controltower-enabledcontrol.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "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" - ] - }, - "delete": { - "permissions": [ - "controltower:GetControlOperation", - "controltower:DisableControl", - "organizations:UpdatePolicy", - "organizations:DeletePolicy", - "organizations:CreatePolicy", - "organizations:AttachPolicy", - "organizations:DetachPolicy", - "organizations:ListPoliciesForTarget", - "organizations:ListTargetsForPolicy", - "organizations:DescribePolicy" - ] - }, - "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" - ] - } - }, - "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_south_2/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rolesanywhere-profile.json deleted file mode 100644 index 9781637c58..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-rolesanywhere-profile.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AttributeMapping": { - "additionalProperties": false, - "properties": { - "CertificateField": { - "$ref": "#/definitions/CertificateField" - }, - "MappingRules": { - "items": { - "$ref": "#/definitions/MappingRule" - }, - "type": "array" - } - }, - "required": [ - "CertificateField", - "MappingRules" - ], - "type": "object" - }, - "CertificateField": { - "enum": [ - "x509Subject", - "x509Issuer", - "x509SAN" - ], - "type": "string" - }, - "MappingRule": { - "additionalProperties": false, - "properties": { - "Specifier": { - "type": "string" - } - }, - "required": [ - "Specifier" - ], - "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": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:CreateProfile", - "rolesanywhere:TagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - }, - "delete": { - "permissions": [ - "rolesanywhere:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "rolesanywhere:ListProfiles", - "rolesanywhere:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "rolesanywhere:GetProfile", - "rolesanywhere:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:GetProfile", - "rolesanywhere:UpdateProfile", - "rolesanywhere:EnableProfile", - "rolesanywhere:DisableProfile", - "rolesanywhere:TagResource", - "rolesanywhere:UntagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "AttributeMappings": { - "items": { - "$ref": "#/definitions/AttributeMapping" - }, - "type": "array" - }, - "DurationSeconds": { - "maximum": 43200, - "minimum": 900, - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "ProfileArn": { - "type": "string" - }, - "ProfileId": { - "pattern": "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", - "type": "string" - }, - "RequireInstanceProperties": { - "type": "boolean" - }, - "RoleArns": { - "items": { - "maxLength": 1011, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "SessionPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProfileId", - "/properties/ProfileArn" - ], - "required": [ - "Name", - "RoleArns" - ], - "typeName": "AWS::RolesAnywhere::Profile" -} 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 fd6af703f7..cb0a118fe5 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -1256,7 +1256,6 @@ "aws-dms-instanceprofile.json", "aws-opensearchserverless-vpcendpoint.json", "aws-quicksight-datasource.json", - "aws-iot-cacertificate.json", "aws-ec2-networkaclentry.json", "aws-robomaker-simulationapplicationversion.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", @@ -1521,6 +1520,7 @@ "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", + "aws-rolesanywhere-profile.json", "aws-refactorspaces-environment.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", @@ -1579,7 +1579,6 @@ "aws-mediapackagev2-channel.json", "aws-appintegrations-eventintegration.json", "aws-batch-schedulingpolicy.json", - "aws-iot-authorizer.json", "aws-timestream-influxdbinstance.json", "aws-mediaconnect-bridgesource.json", "aws-mediapackagev2-channelpolicy.json", @@ -1697,7 +1696,6 @@ "aws-servicecatalog-tagoption.json", "aws-servicediscovery-privatednsnamespace.json", "aws-servicecatalog-launchroleconstraint.json", - "aws-iot-rolealias.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-secretsmanager-resourcepolicy.json", "aws-cloudformation-hookdefaultversion.json", @@ -1784,6 +1782,7 @@ "aws-dms-replicationtask.json", "aws-panorama-applicationinstance.json", "aws-ec2-routetable.json", + "aws-mediaconnect-gateway.json", "aws-rds-dbproxyendpoint.json", "aws-datasync-locationsmb.json", "aws-resiliencehub-app.json", @@ -1891,7 +1890,6 @@ "aws-xray-group.json", "aws-panorama-package.json", "aws-oam-link.json", - "aws-iot-domainconfiguration.json", "aws-frauddetector-eventtype.json", "aws-sagemaker-endpoint.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -1967,7 +1965,6 @@ "aws-servicecatalog-portfolio.json", "aws-workspacesweb-truststore.json", "aws-customerprofiles-domain.json", - "aws-iot-policy.json", "aws-aps-scraper.json", "aws-ec2-transitgatewayroute.json", "aws-ssm-maintenancewindow.json", @@ -2106,7 +2103,6 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", - "aws-iot-certificateprovider.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", @@ -2204,7 +2200,6 @@ "aws-ec2-securitygroupingress.json", "aws-guardduty-detector.json", "aws-sagemaker-modelqualityjobdefinition.json", - "aws-iot-provisioningtemplate.json", "aws-personalize-schema.json", "aws-appflow-flow.json", "aws-apigateway-stage.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-authorizer.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-authorizer.json new file mode 100644 index 0000000000..4fd44d03a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-authorizer.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SigningDisabled", + "/properties/AuthorizerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DeleteAuthorizer", + "iot:DescribeAuthorizer" + ] + }, + "list": { + "permissions": [ + "iot:ListAuthorizers" + ] + }, + "read": { + "permissions": [ + "iot:DescribeAuthorizer", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AuthorizerName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerFunctionArn": { + "type": "string" + }, + "AuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "EnableCachingForHttp": { + "type": "boolean" + }, + "SigningDisabled": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TokenKeyName": { + "type": "string" + }, + "TokenSigningPublicKeys": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9:_-]+": { + "maxLength": 5120, + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "AuthorizerFunctionArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-cacertificate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-cacertificate.json new file mode 100644 index 0000000000..7c56105907 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-cacertificate.json @@ -0,0 +1,174 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/CertificateMode", + "/properties/CACertificatePem" + ], + "definitions": { + "RegistrationConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "TemplateBody": { + "maxLength": 10240, + "minLength": 0, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:RegisterCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateCACertificate", + "iot:DeleteCACertificate", + "iot:DescribeCACertificate" + ] + }, + "list": { + "permissions": [ + "iot:ListCACertificates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCACertificate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AutoRegistrationStatus": { + "enum": [ + "ENABLE", + "DISABLE" + ], + "type": "string" + }, + "CACertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "CertificateMode": { + "enum": [ + "DEFAULT", + "SNI_ONLY" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "RegistrationConfig": { + "$ref": "#/definitions/RegistrationConfig" + }, + "RemoveAutoRegistration": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VerificationCertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "CACertificatePem", + "Status" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CACertificate", + "writeOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/RemoveAutoRegistration" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-certificateprovider.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-certificateprovider.json new file mode 100644 index 0000000000..ea4c9d9f71 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-certificateprovider.json @@ -0,0 +1,125 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateProviderName" + ], + "definitions": { + "CertificateProviderOperation": { + "enum": [ + "CreateCertificateFromCsr" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteCertificateProvider", + "iot:DescribeCertificateProvider" + ] + }, + "list": { + "permissions": [ + "iot:ListCertificateProviders" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCertificateProvider", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/CertificateProviderName" + ], + "properties": { + "AccountDefaultForOperations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CertificateProviderOperation" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Arn": { + "type": "string" + }, + "CertificateProviderName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "LambdaFunctionArn": { + "maxLength": 170, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "LambdaFunctionArn", + "AccountDefaultForOperations" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CertificateProvider" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-domainconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-domainconfiguration.json new file mode 100644 index 0000000000..03db5c565e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-domainconfiguration.json @@ -0,0 +1,224 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainConfigurationName", + "/properties/DomainName", + "/properties/ServiceType", + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ], + "definitions": { + "AuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AllowAuthorizerOverride": { + "type": "boolean" + }, + "DefaultAuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w=,@-]+$", + "type": "string" + } + }, + "type": "object" + }, + "ServerCertificateConfig": { + "additionalProperties": false, + "properties": { + "EnableOCSPCheck": { + "type": "boolean" + } + }, + "type": "object" + }, + "ServerCertificateSummary": { + "additionalProperties": false, + "properties": { + "ServerCertificateArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "ServerCertificateStatus": { + "enum": [ + "INVALID", + "VALID" + ], + "type": "string" + }, + "ServerCertificateStatusDetail": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "SecurityPolicy": { + "maxLength": 128, + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateDomainConfiguration", + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:TagResource", + "iot:ListTagsForResource", + "acm:GetCertificate" + ] + }, + "delete": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:DeleteDomainConfiguration", + "iot:UpdateDomainConfiguration" + ] + }, + "list": { + "permissions": [ + "iot:ListDomainConfigurations" + ] + }, + "read": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource", + "iot:TagResource", + "iot:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainConfigurationName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerConfig": { + "$ref": "#/definitions/AuthorizerConfig" + }, + "DomainConfigurationName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w.-]+$", + "type": "string" + }, + "DomainConfigurationStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "DomainName": { + "maxLength": 253, + "minLength": 1, + "type": "string" + }, + "DomainType": { + "enum": [ + "ENDPOINT", + "AWS_MANAGED", + "CUSTOMER_MANAGED" + ], + "type": "string" + }, + "ServerCertificateArns": { + "insertionOrder": true, + "items": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "ServerCertificateConfig": { + "$ref": "#/definitions/ServerCertificateConfig" + }, + "ServerCertificates": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ServerCertificateSummary" + }, + "type": "array" + }, + "ServiceType": { + "enum": [ + "DATA", + "CREDENTIAL_PROVIDER", + "JOBS" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + }, + "ValidationCertificateArn": { + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DomainType", + "/properties/ServerCertificates" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::DomainConfiguration", + "writeOnlyProperties": [ + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ] +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-policy.json new file mode 100644 index 0000000000..6a8b285974 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-policy.json @@ -0,0 +1,110 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreatePolicy", + "iot:GetPolicy", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeletePolicy", + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:DeletePolicyVersion" + ] + }, + "list": { + "permissions": [ + "iot:ListPolicies" + ] + }, + "read": { + "permissions": [ + "iot:GetPolicy", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:CreatePolicyVersion", + "iot:DeletePolicyVersion", + "iot:SetDefaultPolicyVersion", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "maxLength": 404600, + "minLength": 1, + "type": [ + "object", + "string" + ] + }, + "PolicyName": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "PolicyDocument" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-provisioningtemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-provisioningtemplate.json new file mode 100644 index 0000000000..31a4f45b65 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-provisioningtemplate.json @@ -0,0 +1,141 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TemplateName", + "/properties/TemplateType" + ], + "definitions": { + "ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateProvisioningTemplate", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteProvisioningTemplate", + "iot:DescribeProvisioningTemplate" + ] + }, + "list": { + "permissions": [ + "iot:ListProvisioningTemplates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeProvisioningTemplate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateProvisioningTemplate", + "iot:CreateProvisioningTemplateVersion", + "iot:ListProvisioningTemplateVersions", + "iot:DeleteProvisioningTemplateVersion", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TemplateName" + ], + "properties": { + "Description": { + "maxLength": 500, + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TemplateArn": { + "type": "string" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + }, + "TemplateType": { + "enum": [ + "FLEET_PROVISIONING", + "JITP" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TemplateArn" + ], + "required": [ + "ProvisioningRoleArn", + "TemplateBody" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::ProvisioningTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-rolealias.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-rolealias.json new file mode 100644 index 0000000000..5ea03cb1af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-iot-rolealias.json @@ -0,0 +1,124 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RoleAlias" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteRoleAlias", + "iot:DescribeRoleAlias" + ] + }, + "list": { + "permissions": [ + "iot:ListRoleAliases" + ] + }, + "read": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:DescribeRoleAlias", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RoleAlias" + ], + "properties": { + "CredentialDurationSeconds": { + "default": 3600, + "maximum": 43200, + "minimum": 900, + "type": "integer" + }, + "RoleAlias": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleAliasArn": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/RoleAliasArn" + ], + "required": [ + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::RoleAlias" +} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-mediaconnect-gateway.json deleted file mode 100644 index 3cab25d209..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-mediaconnect-gateway.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/EgressCidrBlocks", - "/properties/Networks", - "/properties/Networks/*/Name", - "/properties/Networks/*/CidrBlock" - ], - "definitions": { - "GatewayNetwork": { - "additionalProperties": false, - "properties": { - "CidrBlock": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Name", - "CidrBlock" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateServiceLinkedRole", - "mediaconnect:CreateGateway", - "mediaconnect:DescribeGateway" - ] - }, - "delete": { - "permissions": [ - "iam:CreateServiceLinkedRole", - "mediaconnect:DescribeGateway", - "mediaconnect:DeleteGateway" - ] - }, - "list": { - "permissions": [ - "mediaconnect:ListGateways" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeGateway" - ] - } - }, - "primaryIdentifier": [ - "/properties/GatewayArn" - ], - "properties": { - "EgressCidrBlocks": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "GatewayArn": { - "type": "string" - }, - "GatewayState": { - "enum": [ - "CREATING", - "ACTIVE", - "UPDATING", - "ERROR", - "DELETING", - "DELETED" - ], - "type": "string" - }, - "Name": { - "type": "string" - }, - "Networks": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/GatewayNetwork" - }, - "maxItems": 4, - "minItems": 1, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/GatewayArn", - "/properties/GatewayState" - ], - "required": [ - "Name", - "EgressCidrBlocks", - "Networks" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::MediaConnect::Gateway" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rolesanywhere-profile.json deleted file mode 100644 index 9781637c58..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rolesanywhere-profile.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AttributeMapping": { - "additionalProperties": false, - "properties": { - "CertificateField": { - "$ref": "#/definitions/CertificateField" - }, - "MappingRules": { - "items": { - "$ref": "#/definitions/MappingRule" - }, - "type": "array" - } - }, - "required": [ - "CertificateField", - "MappingRules" - ], - "type": "object" - }, - "CertificateField": { - "enum": [ - "x509Subject", - "x509Issuer", - "x509SAN" - ], - "type": "string" - }, - "MappingRule": { - "additionalProperties": false, - "properties": { - "Specifier": { - "type": "string" - } - }, - "required": [ - "Specifier" - ], - "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": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:CreateProfile", - "rolesanywhere:TagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - }, - "delete": { - "permissions": [ - "rolesanywhere:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "rolesanywhere:ListProfiles", - "rolesanywhere:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "rolesanywhere:GetProfile", - "rolesanywhere:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:GetProfile", - "rolesanywhere:UpdateProfile", - "rolesanywhere:EnableProfile", - "rolesanywhere:DisableProfile", - "rolesanywhere:TagResource", - "rolesanywhere:UntagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "AttributeMappings": { - "items": { - "$ref": "#/definitions/AttributeMapping" - }, - "type": "array" - }, - "DurationSeconds": { - "maximum": 43200, - "minimum": 900, - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "ProfileArn": { - "type": "string" - }, - "ProfileId": { - "pattern": "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", - "type": "string" - }, - "RequireInstanceProperties": { - "type": "boolean" - }, - "RoleArns": { - "items": { - "maxLength": 1011, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "SessionPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProfileId", - "/properties/ProfileArn" - ], - "required": [ - "Name", - "RoleArns" - ], - "typeName": "AWS::RolesAnywhere::Profile" -} 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 d3184a6eb2..9b077b9edd 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -583,6 +583,7 @@ "AWS::EC2::IPAM", "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::QuickSight::Template", "AWS::IoTWireless::FuotaTask", "AWS::CloudFront::CachePolicy", @@ -657,6 +658,7 @@ "aws-s3outposts-accesspoint.json", "aws-ec2-ipampoolcidr.json", "aws-redshift-clustersubnetgroup.json", + "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-networkacl.json", "aws-lambda-eventsourcemapping.json", @@ -684,6 +686,7 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", @@ -961,6 +964,7 @@ "aws-redshift-cluster.json", "aws-emr-instancefleetconfig.json", "aws-emr-cluster.json", + "aws-rds-dbcluster.json", "aws-transfer-agreement.json", "aws-chatbot-slackchannelconfiguration.json", "aws-cloudfront-distribution.json", @@ -1154,6 +1158,7 @@ "aws-ec2-ipam.json", "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-ec2-transitgatewaypeeringattachment.json", + "aws-ecr-repositorycreationtemplate.json", "aws-quicksight-template.json", "aws-iotwireless-fuotatask.json", "aws-cloudfront-cachepolicy.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-controltower-enabledcontrol.json deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-controltower-enabledcontrol.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "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" - ] - }, - "delete": { - "permissions": [ - "controltower:GetControlOperation", - "controltower:DisableControl", - "organizations:UpdatePolicy", - "organizations:DeletePolicy", - "organizations:CreatePolicy", - "organizations:AttachPolicy", - "organizations:DetachPolicy", - "organizations:ListPoliciesForTarget", - "organizations:ListTargetsForPolicy", - "organizations:DescribePolicy" - ] - }, - "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" - ] - } - }, - "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_3/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json deleted file mode 100644 index e0756eb08e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbcluster.json +++ /dev/null @@ -1,503 +0,0 @@ -{ - "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": { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::IAM::Role" - }, - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "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: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": { - "default": 0, - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::EC2::SecurityGroup" - } - } - ], - "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-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbinstance.json deleted file mode 100644 index d92125d3b5..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rds-dbinstance.json +++ /dev/null @@ -1,670 +0,0 @@ -{ - "additionalProperties": false, - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationKmsKeyId": { - "type": "string" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/AutomaticBackupReplicationKmsKeyId", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py index 06223488e2..8644e0a586 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -1384,6 +1384,7 @@ "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", + "aws-rolesanywhere-profile.json", "aws-refactorspaces-environment.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", @@ -1619,6 +1620,7 @@ "aws-dms-replicationtask.json", "aws-panorama-applicationinstance.json", "aws-ec2-routetable.json", + "aws-mediaconnect-gateway.json", "aws-rds-dbproxyendpoint.json", "aws-datasync-locationsmb.json", "aws-resiliencehub-app.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-mediaconnect-gateway.json deleted file mode 100644 index 3cab25d209..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-mediaconnect-gateway.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/EgressCidrBlocks", - "/properties/Networks", - "/properties/Networks/*/Name", - "/properties/Networks/*/CidrBlock" - ], - "definitions": { - "GatewayNetwork": { - "additionalProperties": false, - "properties": { - "CidrBlock": { - "type": "string" - }, - "Name": { - "type": "string" - } - }, - "required": [ - "Name", - "CidrBlock" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "iam:CreateServiceLinkedRole", - "mediaconnect:CreateGateway", - "mediaconnect:DescribeGateway" - ] - }, - "delete": { - "permissions": [ - "iam:CreateServiceLinkedRole", - "mediaconnect:DescribeGateway", - "mediaconnect:DeleteGateway" - ] - }, - "list": { - "permissions": [ - "mediaconnect:ListGateways" - ] - }, - "read": { - "permissions": [ - "mediaconnect:DescribeGateway" - ] - } - }, - "primaryIdentifier": [ - "/properties/GatewayArn" - ], - "properties": { - "EgressCidrBlocks": { - "insertionOrder": true, - "items": { - "type": "string" - }, - "type": "array" - }, - "GatewayArn": { - "type": "string" - }, - "GatewayState": { - "enum": [ - "CREATING", - "ACTIVE", - "UPDATING", - "ERROR", - "DELETING", - "DELETED" - ], - "type": "string" - }, - "Name": { - "type": "string" - }, - "Networks": { - "insertionOrder": true, - "items": { - "$ref": "#/definitions/GatewayNetwork" - }, - "maxItems": 4, - "minItems": 1, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/GatewayArn", - "/properties/GatewayState" - ], - "required": [ - "Name", - "EgressCidrBlocks", - "Networks" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-mediaconnect.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::MediaConnect::Gateway" -} diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-rolesanywhere-profile.json deleted file mode 100644 index 9781637c58..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-rolesanywhere-profile.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AttributeMapping": { - "additionalProperties": false, - "properties": { - "CertificateField": { - "$ref": "#/definitions/CertificateField" - }, - "MappingRules": { - "items": { - "$ref": "#/definitions/MappingRule" - }, - "type": "array" - } - }, - "required": [ - "CertificateField", - "MappingRules" - ], - "type": "object" - }, - "CertificateField": { - "enum": [ - "x509Subject", - "x509Issuer", - "x509SAN" - ], - "type": "string" - }, - "MappingRule": { - "additionalProperties": false, - "properties": { - "Specifier": { - "type": "string" - } - }, - "required": [ - "Specifier" - ], - "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": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:CreateProfile", - "rolesanywhere:TagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - }, - "delete": { - "permissions": [ - "rolesanywhere:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "rolesanywhere:ListProfiles", - "rolesanywhere:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "rolesanywhere:GetProfile", - "rolesanywhere:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:GetProfile", - "rolesanywhere:UpdateProfile", - "rolesanywhere:EnableProfile", - "rolesanywhere:DisableProfile", - "rolesanywhere:TagResource", - "rolesanywhere:UntagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "AttributeMappings": { - "items": { - "$ref": "#/definitions/AttributeMapping" - }, - "type": "array" - }, - "DurationSeconds": { - "maximum": 43200, - "minimum": 900, - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "ProfileArn": { - "type": "string" - }, - "ProfileId": { - "pattern": "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", - "type": "string" - }, - "RequireInstanceProperties": { - "type": "boolean" - }, - "RoleArns": { - "items": { - "maxLength": 1011, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "SessionPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProfileId", - "/properties/ProfileArn" - ], - "required": [ - "Name", - "RoleArns" - ], - "typeName": "AWS::RolesAnywhere::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-osis-pipeline.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-osis-pipeline.json index a58c2cd611..62c5a43529 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-osis-pipeline.json +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-osis-pipeline.json @@ -112,6 +112,30 @@ "type": "string" }, "type": "array" + }, + "VpcAttachmentOptions": { + "additionalProperties": false, + "properties": { + "AttachToVpc": { + "type": "boolean" + }, + "CidrBlock": { + "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/(3[0-2]|[12]?[0-9])$", + "type": "string" + } + }, + "required": [ + "AttachToVpc", + "CidrBlock" + ], + "type": "object" + }, + "VpcEndpointManagement": { + "enum": [ + "CUSTOMER", + "SERVICE" + ], + "type": "string" } }, "required": [ @@ -223,6 +247,11 @@ "type": "array", "uniqueItems": true }, + "VpcEndpointService": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, "VpcEndpoints": { "insertionOrder": false, "items": { @@ -237,7 +266,8 @@ "readOnlyProperties": [ "/properties/PipelineArn", "/properties/IngestEndpointUrls", - "/properties/VpcEndpoints" + "/properties/VpcEndpoints", + "/properties/VpcEndpointService" ], "required": [ "MaxUnits", 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 91404292ed..1cc7d32408 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py @@ -535,6 +535,7 @@ "AWS::EC2::IPAM", "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::QuickSight::Template", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", @@ -632,6 +633,7 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", @@ -1043,6 +1045,7 @@ "aws-ec2-ipam.json", "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-ec2-transitgatewaypeeringattachment.json", + "aws-ecr-repositorycreationtemplate.json", "aws-quicksight-template.json", "aws-cloudfront-cachepolicy.json", "aws-rds-dbsubnetgroup.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 deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-controltower-enabledcontrol.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "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" - ] - }, - "delete": { - "permissions": [ - "controltower:GetControlOperation", - "controltower:DisableControl", - "organizations:UpdatePolicy", - "organizations:DeletePolicy", - "organizations:CreatePolicy", - "organizations:AttachPolicy", - "organizations:DetachPolicy", - "organizations:ListPoliciesForTarget", - "organizations:ListTargetsForPolicy", - "organizations:DescribePolicy" - ] - }, - "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" - ] - } - }, - "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-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rds-dbcluster.json index 62a3797fcd..e0756eb08e 100644 --- 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 @@ -302,6 +302,9 @@ "EnableIAMDatabaseAuthentication": { "type": "boolean" }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, "Endpoint": { "$ref": "#/definitions/Endpoint" }, 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 9b05af06c3..eb3ab276ec 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py @@ -874,6 +874,7 @@ "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "AWS::DataBrew::Job", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::QuickSight::Template", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", @@ -984,6 +985,7 @@ "aws-amplify-branch.json", "aws-kafkaconnect-workerconfiguration.json", "aws-redshift-clustersubnetgroup.json", + "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-lightsail-bucket.json", "aws-apigateway-model.json", @@ -1106,7 +1108,6 @@ "aws-networkmanager-connectpeer.json", "aws-elasticache-usergroup.json", "aws-iot-thinggroup.json", - "aws-logs-deliverydestination.json", "aws-imagebuilder-imagerecipe.json", "aws-iot-softwarepackage.json", "aws-apigateway-restapi.json", @@ -1139,7 +1140,6 @@ "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", "aws-sagemaker-app.json", - "aws-logs-deliverysource.json", "aws-ec2-vpcgatewayattachment.json", "aws-cloudtrail-trail.json", "aws-ec2-vpnconnectionroute.json", @@ -1201,6 +1201,7 @@ "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", + "aws-rolesanywhere-profile.json", "aws-refactorspaces-environment.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", @@ -1477,6 +1478,7 @@ "aws-securitylake-datalake.json", "aws-codepipeline-webhook.json", "aws-apigatewayv2-domainname.json", + "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", "aws-lightsail-certificate.json", @@ -1546,7 +1548,6 @@ "aws-opsworks-userprofile.json", "aws-glue-schema.json", "aws-docdb-dbsubnetgroup.json", - "aws-logs-delivery.json", "aws-bedrock-datasource.json", "aws-servicecatalog-portfolio.json", "aws-iot-policy.json", @@ -1773,6 +1774,7 @@ "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-databrew-job.json", "aws-ec2-transitgatewaypeeringattachment.json", + "aws-ecr-repositorycreationtemplate.json", "aws-quicksight-template.json", "aws-cloudfront-cachepolicy.json", "aws-iam-accesskey.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-delivery.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-delivery.json new file mode 100644 index 0000000000..849da5dade --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-delivery.json @@ -0,0 +1,130 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DeliverySourceName", + "/properties/DeliveryDestinationArn" + ], + "definitions": { + "Arn": { + "maxLength": 2048, + "minLength": 16, + "pattern": "[\\w#+=/:,.@-]*\\*?", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "logs:CreateDelivery", + "logs:GetDelivery", + "logs:DescribeDeliveries", + "logs:ListTagsForResource", + "logs:TagResource", + "logs:GetDeliverySource", + "logs:GetDeliveryDestination" + ] + }, + "delete": { + "permissions": [ + "logs:DeleteDelivery", + "logs:ListTagsForResource", + "logs:UntagResource" + ] + }, + "list": { + "permissions": [ + "logs:DescribeDeliveries", + "logs:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "logs:GetDelivery", + "logs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "logs:GetDelivery", + "logs:ListTagsForResource", + "logs:TagResource", + "logs:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/DeliveryId" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/Arn" + }, + "DeliveryDestinationArn": { + "$ref": "#/definitions/Arn" + }, + "DeliveryDestinationType": { + "maxLength": 12, + "minLength": 1, + "pattern": "^[0-9A-Za-z]+$", + "type": "string" + }, + "DeliveryId": { + "maxLength": 64, + "minLength": 1, + "pattern": "^[0-9A-Za-z]+$", + "type": "string" + }, + "DeliverySourceName": { + "maxLength": 60, + "minLength": 1, + "pattern": "[\\w-]*$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/DeliveryId", + "/properties/Arn", + "/properties/DeliveryDestinationType" + ], + "required": [ + "DeliverySourceName", + "DeliveryDestinationArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Logs::Delivery" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-deliverydestination.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-deliverydestination.json new file mode 100644 index 0000000000..29abb6e68a --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-deliverydestination.json @@ -0,0 +1,152 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name", + "/properties/DestinationResourceArn" + ], + "definitions": { + "Arn": { + "maxLength": 2048, + "minLength": 16, + "pattern": "[\\w#+=/:,.@-]*\\*?", + "type": "string" + }, + "DestinationPolicy": { + "additionalProperties": false, + "properties": { + "DeliveryDestinationName": { + "maxLength": 60, + "minLength": 1, + "type": "string" + }, + "DeliveryDestinationPolicy": { + "maxLength": 51200, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "DeliveryDestinationName", + "DeliveryDestinationPolicy" + ], + "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": [ + "logs:PutDeliveryDestination", + "logs:GetDeliveryDestination", + "logs:ListTagsForResource", + "logs:TagResource", + "logs:UntagResource", + "logs:PutDeliveryDestinationPolicy", + "logs:GetDeliveryDestinationPolicy" + ] + }, + "delete": { + "permissions": [ + "logs:DeleteDeliveryDestination", + "logs:DeleteDeliveryDestinationPolicy" + ] + }, + "list": { + "permissions": [ + "logs:DescribeDeliveryDestinations", + "logs:GetDeliveryDestinationPolicy" + ] + }, + "read": { + "permissions": [ + "logs:GetDeliveryDestination", + "logs:ListTagsForResource", + "logs:GetDeliveryDestinationPolicy" + ] + }, + "update": { + "permissions": [ + "logs:PutDeliveryDestination", + "logs:GetDeliveryDestination", + "logs:ListTagsForResource", + "logs:TagResource", + "logs:UntagResource", + "logs:DeleteDeliveryDestinationPolicy", + "logs:PutDeliveryDestinationPolicy", + "logs:GetDeliveryDestinationPolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/Arn" + }, + "DeliveryDestinationPolicy": { + "items": { + "$ref": "#/definitions/DestinationPolicy" + }, + "type": "object" + }, + "DeliveryDestinationType": { + "maxLength": 12, + "minLength": 1, + "pattern": "^[0-9A-Za-z]+$", + "type": "string" + }, + "DestinationResourceArn": { + "$ref": "#/definitions/Arn" + }, + "Name": { + "maxLength": 60, + "minLength": 1, + "pattern": "[\\w-]*$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DeliveryDestinationType" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Logs::DeliveryDestination" +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-deliverysource.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-deliverysource.json new file mode 100644 index 0000000000..13d7556bb8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-logs-deliverysource.json @@ -0,0 +1,138 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "Arn": { + "maxLength": 2048, + "minLength": 16, + "pattern": "[\\w#+=/:,.@-]*\\*?", + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "logs:PutDeliverySource", + "logs:GetDeliverySource", + "logs:ListTagsForResource", + "logs:TagResource", + "logs:AllowVendedLogDeliveryForResource", + "codewhisperer:AllowVendedLogDeliveryForResource", + "autoloop:AllowVendedLogDeliveryForResource", + "workmail:AllowVendedLogDeliveryForResource" + ] + }, + "delete": { + "permissions": [ + "logs:DeleteDeliverySource" + ] + }, + "list": { + "permissions": [ + "logs:DescribeDeliverySources" + ] + }, + "read": { + "permissions": [ + "logs:GetDeliverySource", + "logs:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "logs:PutDeliverySource", + "logs:GetDeliverySource", + "logs:ListTagsForResource", + "logs:TagResource", + "logs:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Name" + ], + "properties": { + "Arn": { + "$ref": "#/definitions/Arn" + }, + "LogType": { + "maxLength": 255, + "minLength": 1, + "pattern": "[\\w-]*$", + "type": "string" + }, + "Name": { + "maxLength": 60, + "minLength": 1, + "pattern": "[\\w-]*$", + "type": "string" + }, + "ResourceArn": { + "$ref": "#/definitions/Arn" + }, + "ResourceArns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Arn" + }, + "type": "array", + "uniqueItems": true + }, + "Service": { + "maxLength": 255, + "minLength": 1, + "pattern": "[\\w-]*$", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Service", + "/properties/ResourceArns", + "/properties/Arn" + ], + "required": [ + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Logs::DeliverySource", + "writeOnlyProperties": [ + "/properties/ResourceArn" + ] +} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-dbcluster.json deleted file mode 100644 index e0756eb08e..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-dbcluster.json +++ /dev/null @@ -1,503 +0,0 @@ -{ - "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": { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::IAM::Role" - }, - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "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: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": { - "default": 0, - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::EC2::SecurityGroup" - } - } - ], - "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_west_3/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-dbinstance.json deleted file mode 100644 index d92125d3b5..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-rds-dbinstance.json +++ /dev/null @@ -1,670 +0,0 @@ -{ - "additionalProperties": false, - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationKmsKeyId": { - "type": "string" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/AutomaticBackupReplicationKmsKeyId", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-rolesanywhere-profile.json deleted file mode 100644 index 9781637c58..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-rolesanywhere-profile.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AttributeMapping": { - "additionalProperties": false, - "properties": { - "CertificateField": { - "$ref": "#/definitions/CertificateField" - }, - "MappingRules": { - "items": { - "$ref": "#/definitions/MappingRule" - }, - "type": "array" - } - }, - "required": [ - "CertificateField", - "MappingRules" - ], - "type": "object" - }, - "CertificateField": { - "enum": [ - "x509Subject", - "x509Issuer", - "x509SAN" - ], - "type": "string" - }, - "MappingRule": { - "additionalProperties": false, - "properties": { - "Specifier": { - "type": "string" - } - }, - "required": [ - "Specifier" - ], - "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": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:CreateProfile", - "rolesanywhere:TagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - }, - "delete": { - "permissions": [ - "rolesanywhere:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "rolesanywhere:ListProfiles", - "rolesanywhere:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "rolesanywhere:GetProfile", - "rolesanywhere:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:GetProfile", - "rolesanywhere:UpdateProfile", - "rolesanywhere:EnableProfile", - "rolesanywhere:DisableProfile", - "rolesanywhere:TagResource", - "rolesanywhere:UntagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "AttributeMappings": { - "items": { - "$ref": "#/definitions/AttributeMapping" - }, - "type": "array" - }, - "DurationSeconds": { - "maximum": 43200, - "minimum": 900, - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "ProfileArn": { - "type": "string" - }, - "ProfileId": { - "pattern": "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", - "type": "string" - }, - "RequireInstanceProperties": { - "type": "boolean" - }, - "RoleArns": { - "items": { - "maxLength": 1011, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "SessionPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProfileId", - "/properties/ProfileArn" - ], - "required": [ - "Name", - "RoleArns" - ], - "typeName": "AWS::RolesAnywhere::Profile" -} 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 3b936907f8..48f6463d21 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py @@ -594,6 +594,7 @@ "AWS::ServiceCatalog::TagOptionAssociation", "AWS::EC2::IPAM", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", "AWS::RDS::DBSubnetGroup", @@ -669,6 +670,7 @@ "aws-s3outposts-accesspoint.json", "aws-ec2-ipampoolcidr.json", "aws-redshift-clustersubnetgroup.json", + "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-ec2-networkacl.json", "aws-lambda-eventsourcemapping.json", @@ -695,6 +697,7 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-macie-customdataidentifier.json", "aws-cognito-identitypoolroleattachment.json", @@ -968,6 +971,7 @@ "aws-codebuild-sourcecredential.json", "aws-emr-instancefleetconfig.json", "aws-emr-cluster.json", + "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", "aws-chatbot-slackchannelconfiguration.json", @@ -1148,6 +1152,7 @@ "aws-cloudformation-resourcedefaultversion.json", "aws-ec2-ipam.json", "aws-ec2-transitgatewaypeeringattachment.json", + "aws-ecr-repositorycreationtemplate.json", "aws-cloudfront-cachepolicy.json", "aws-rds-dbsubnetgroup.json", "aws-amazonmq-configuration.json", 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 deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-controltower-enabledcontrol.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "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" - ] - }, - "delete": { - "permissions": [ - "controltower:GetControlOperation", - "controltower:DisableControl", - "organizations:UpdatePolicy", - "organizations:DeletePolicy", - "organizations:CreatePolicy", - "organizations:AttachPolicy", - "organizations:DetachPolicy", - "organizations:ListPoliciesForTarget", - "organizations:ListTargetsForPolicy", - "organizations:DescribePolicy" - ] - }, - "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" - ] - } - }, - "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-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json deleted file mode 100644 index e0756eb08e..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbcluster.json +++ /dev/null @@ -1,503 +0,0 @@ -{ - "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": { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::IAM::Role" - }, - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "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: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": { - "default": 0, - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::EC2::SecurityGroup" - } - } - ], - "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-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json deleted file mode 100644 index d92125d3b5..0000000000 --- a/src/cfnlint/data/schemas/providers/il_central_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,670 +0,0 @@ -{ - "additionalProperties": false, - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationKmsKeyId": { - "type": "string" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/AutomaticBackupReplicationKmsKeyId", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py index 9415da637a..c570befcf5 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py @@ -733,6 +733,7 @@ "AWS::EC2::IPAM", "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", "AWS::RDS::DBSubnetGroup", @@ -819,6 +820,7 @@ "aws-iot-topicruledestination.json", "aws-amplify-branch.json", "aws-redshift-clustersubnetgroup.json", + "aws-rds-dbinstance.json", "aws-ec2-vpcdhcpoptionsassociation.json", "aws-apigateway-model.json", "aws-apigatewayv2-integrationresponse.json", @@ -858,6 +860,7 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", + "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", @@ -1166,6 +1169,7 @@ "aws-ec2-routetable.json", "aws-rds-dbproxyendpoint.json", "aws-datasync-locationsmb.json", + "aws-resiliencehub-app.json", "aws-securityhub-standard.json", "aws-rolesanywhere-crl.json", "aws-sns-topicinlinepolicy.json", @@ -1233,6 +1237,7 @@ "aws-emr-instancefleetconfig.json", "aws-emr-cluster.json", "aws-apigatewayv2-domainname.json", + "aws-rds-dbcluster.json", "aws-servicecatalog-resourceupdateconstraint.json", "aws-transfer-agreement.json", "aws-chatbot-slackchannelconfiguration.json", @@ -1479,6 +1484,7 @@ "aws-ec2-ipam.json", "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-ec2-transitgatewaypeeringattachment.json", + "aws-ecr-repositorycreationtemplate.json", "aws-cloudfront-cachepolicy.json", "aws-iam-accesskey.json", "aws-rds-dbsubnetgroup.json", 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 deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-controltower-enabledcontrol.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "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" - ] - }, - "delete": { - "permissions": [ - "controltower:GetControlOperation", - "controltower:DisableControl", - "organizations:UpdatePolicy", - "organizations:DeletePolicy", - "organizations:CreatePolicy", - "organizations:AttachPolicy", - "organizations:DetachPolicy", - "organizations:ListPoliciesForTarget", - "organizations:ListTargetsForPolicy", - "organizations:DescribePolicy" - ] - }, - "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" - ] - } - }, - "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-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json deleted file mode 100644 index e0756eb08e..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbcluster.json +++ /dev/null @@ -1,503 +0,0 @@ -{ - "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": { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::IAM::Role" - }, - "type": "string" - } - }, - "required": [ - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "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: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": { - "default": 0, - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "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": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::EC2::SecurityGroup" - } - } - ], - "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-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbinstance.json deleted file mode 100644 index d92125d3b5..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-rds-dbinstance.json +++ /dev/null @@ -1,670 +0,0 @@ -{ - "additionalProperties": false, - "conditionalCreateOnlyProperties": [ - "/properties/AutoMinorVersionUpgrade", - "/properties/AvailabilityZone", - "/properties/BackupRetentionPeriod", - "/properties/DBClusterSnapshotIdentifier", - "/properties/DBParameterGroupName", - "/properties/DBSnapshotIdentifier", - "/properties/Engine", - "/properties/MultiAZ", - "/properties/PerformanceInsightsKMSKeyId", - "/properties/PreferredMaintenanceWindow", - "/properties/RestoreTime", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/StorageType", - "/properties/UseLatestRestorableTime" - ], - "createOnlyProperties": [ - "/properties/CharacterSetName", - "/properties/CustomIAMInstanceProfile", - "/properties/DBClusterIdentifier", - "/properties/DBInstanceIdentifier", - "/properties/DBName", - "/properties/DBSubnetGroupName", - "/properties/KmsKeyId", - "/properties/MasterUsername", - "/properties/NcharCharacterSetName", - "/properties/Port", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/Timezone" - ], - "definitions": { - "CertificateDetails": { - "additionalProperties": false, - "properties": { - "CAIdentifier": { - "type": "string" - }, - "ValidTill": { - "format": "date-time", - "type": "string" - } - }, - "type": "object" - }, - "DBInstanceRole": { - "additionalProperties": false, - "properties": { - "FeatureName": { - "type": "string" - }, - "RoleArn": { - "type": "string" - } - }, - "required": [ - "FeatureName", - "RoleArn" - ], - "type": "object" - }, - "Endpoint": { - "additionalProperties": false, - "properties": { - "Address": { - "type": "string" - }, - "HostedZoneId": { - "type": "string" - }, - "Port": { - "type": "string" - } - }, - "type": "object" - }, - "MasterUserSecret": { - "additionalProperties": false, - "properties": { - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "SecretArn": { - "type": "string" - } - }, - "type": "object" - }, - "ProcessorFeature": { - "additionalProperties": false, - "properties": { - "Name": { - "enum": [ - "coreCount", - "threadsPerCore" - ], - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key" - ], - "type": "object" - } - }, - "dependencies": { - "KmsKeyId": { - "properties": { - "StorageEncrypted": { - "enum": [ - "true", - "True", - true - ] - } - }, - "required": [ - "StorageEncrypted" - ] - } - }, - "dependentExcluded": { - "SourceDBInstanceIdentifier": [ - "CharacterSetName", - "MasterUserPassword", - "MasterUsername", - "StorageEncrypted" - ] - }, - "deprecatedProperties": [ - "/properties/TdeCredentialArn", - "/properties/TdeCredentialPassword" - ], - "handlers": { - "create": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - "rds:DescribeDBInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBInstanceAutomatedBackups", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:RebootDBInstance", - "rds:RestoreDBInstanceFromDBSnapshot", - "rds:RestoreDBInstanceToPointInTime", - "rds:StartDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - }, - "delete": { - "permissions": [ - "rds:CreateDBSnapshot", - "rds:DeleteDBInstance", - "rds:DescribeDBInstances" - ], - "timeoutInMinutes": 2160 - }, - "list": { - "permissions": [ - "rds:DescribeDBInstances" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "rds:DescribeDBInstances" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeInternetGateways", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "iam:ListRoles", - "iam:PassRole", - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddRoleToDBInstance", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBEngineVersions", - "rds:DescribeDBInstances", - "rds:DescribeDBParameterGroups", - "rds:DescribeEvents", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:RebootDBInstance", - "rds:RemoveRoleFromDBInstance", - "rds:RemoveTagsFromResource", - "rds:StartDBInstanceAutomatedBackupsReplication", - "rds:StopDBInstanceAutomatedBackupsReplication", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 - } - }, - "primaryIdentifier": [ - "/properties/DBInstanceIdentifier" - ], - "properties": { - "AllocatedStorage": { - "pattern": "^[0-9]*$", - "type": "string" - }, - "AllowMajorVersionUpgrade": { - "type": "boolean" - }, - "AssociatedRoles": { - "items": { - "$ref": "#/definitions/DBInstanceRole" - }, - "type": "array" - }, - "AutoMinorVersionUpgrade": { - "type": "boolean" - }, - "AutomaticBackupReplicationKmsKeyId": { - "type": "string" - }, - "AutomaticBackupReplicationRegion": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "BackupRetentionPeriod": { - "default": 1, - "maximum": 35, - "minimum": 0, - "type": "integer" - }, - "CACertificateIdentifier": { - "type": "string" - }, - "CertificateDetails": { - "$ref": "#/definitions/CertificateDetails" - }, - "CertificateRotationRestart": { - "type": "boolean" - }, - "CharacterSetName": { - "type": "string" - }, - "CopyTagsToSnapshot": { - "type": "boolean" - }, - "CustomIAMInstanceProfile": { - "type": "string" - }, - "DBClusterIdentifier": { - "type": "string" - }, - "DBClusterSnapshotIdentifier": { - "type": "string" - }, - "DBInstanceArn": { - "type": "string" - }, - "DBInstanceClass": { - "type": "string" - }, - "DBInstanceIdentifier": { - "maxLength": 63, - "minLength": 1, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "DBName": { - "type": "string" - }, - "DBParameterGroupName": { - "type": "string" - }, - "DBSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/Id", - "typeName": "AWS::RDS::DBSecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - }, - "DBSnapshotIdentifier": { - "type": "string" - }, - "DBSubnetGroupName": { - "type": "string" - }, - "DBSystemId": { - "type": "string" - }, - "DbiResourceId": { - "type": "string" - }, - "DedicatedLogVolume": { - "type": "boolean" - }, - "DeleteAutomatedBackups": { - "type": "boolean" - }, - "DeletionProtection": { - "type": "boolean" - }, - "Domain": { - "type": "string" - }, - "DomainAuthSecretArn": { - "type": "string" - }, - "DomainDnsIps": { - "items": { - "type": "string" - }, - "type": "array" - }, - "DomainFqdn": { - "type": "string" - }, - "DomainIAMRoleName": { - "type": "string" - }, - "DomainOu": { - "type": "string" - }, - "EnableCloudwatchLogsExports": { - "items": { - "type": "string" - }, - "type": "array" - }, - "EnableIAMDatabaseAuthentication": { - "type": "boolean" - }, - "EnablePerformanceInsights": { - "type": "boolean" - }, - "Endpoint": { - "$ref": "#/definitions/Endpoint" - }, - "Engine": { - "type": "string" - }, - "EngineLifecycleSupport": { - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "Iops": { - "type": "integer" - }, - "KmsKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "LicenseModel": { - "type": "string" - }, - "ManageMasterUserPassword": { - "type": "boolean" - }, - "MasterUserPassword": { - "type": "string" - }, - "MasterUserSecret": { - "$ref": "#/definitions/MasterUserSecret" - }, - "MasterUsername": { - "maxLength": 128, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,127}$", - "type": "string" - }, - "MaxAllocatedStorage": { - "type": "integer" - }, - "MonitoringInterval": { - "default": 0, - "type": "integer" - }, - "MonitoringRoleArn": { - "type": "string" - }, - "MultiAZ": { - "type": "boolean" - }, - "NcharCharacterSetName": { - "type": "string" - }, - "NetworkType": { - "type": "string" - }, - "OptionGroupName": { - "type": "string" - }, - "PerformanceInsightsKMSKeyId": { - "anyOf": [ - { - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::KMS::Key" - } - }, - { - "relationshipRef": { - "propertyPath": "/properties/KeyId", - "typeName": "AWS::KMS::Key" - } - } - ], - "type": "string" - }, - "PerformanceInsightsRetentionPeriod": { - "enum": [ - 7, - 31, - 62, - 93, - 124, - 155, - 186, - 217, - 248, - 279, - 310, - 341, - 372, - 403, - 434, - 465, - 496, - 527, - 558, - 589, - 620, - 651, - 682, - 713, - 731 - ], - "type": "integer" - }, - "Port": { - "pattern": "^\\d*$", - "type": "string" - }, - "PreferredBackupWindow": { - "type": "string" - }, - "PreferredMaintenanceWindow": { - "type": "string" - }, - "ProcessorFeatures": { - "items": { - "$ref": "#/definitions/ProcessorFeature" - }, - "type": "array" - }, - "PromotionTier": { - "default": 1, - "maximum": 15, - "minimum": 0, - "type": "integer" - }, - "PubliclyAccessible": { - "type": "boolean" - }, - "ReplicaMode": { - "type": "string" - }, - "RestoreTime": { - "format": "date-time", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "type": "string" - }, - "SourceDBInstanceAutomatedBackupsArn": { - "type": "string" - }, - "SourceDBInstanceIdentifier": { - "type": "string" - }, - "SourceDbiResourceId": { - "type": "string" - }, - "SourceRegion": { - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - }, - "StorageThroughput": { - "type": "integer" - }, - "StorageType": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TdeCredentialArn": { - "type": "string" - }, - "TdeCredentialPassword": { - "type": "string" - }, - "Timezone": { - "type": "string" - }, - "UseDefaultProcessorFeatures": { - "type": "boolean" - }, - "UseLatestRestorableTime": { - "type": "boolean" - }, - "VPCSecurityGroups": { - "items": { - "relationshipRef": { - "propertyPath": "/properties/GroupId", - "typeName": "AWS::EC2::SecurityGroup" - }, - "type": "string" - }, - "type": "array", - "uniqueItems": true - } - }, - "propertyTransform": { - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/DBClusterSnapshotIdentifier": "$lowercase(DBClusterSnapshotIdentifier)", - "/properties/DBInstanceIdentifier": "$lowercase(DBInstanceIdentifier)", - "/properties/DBName": "$lowercase(DBName) $OR $uppercase(DBName)", - "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", - "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/Engine": "$lowercase(Engine)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/OptionGroupName": "$lowercase(OptionGroupName)", - "/properties/PerformanceInsightsKMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", PerformanceInsightsKMSKeyId])", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/SourceDBInstanceAutomatedBackupsArn": "$lowercase(SourceDBInstanceAutomatedBackupsArn)", - "/properties/SourceDBInstanceIdentifier": "$lowercase(SourceDBInstanceIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)" - }, - "readOnlyProperties": [ - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/Endpoint/HostedZoneId", - "/properties/DbiResourceId", - "/properties/DBInstanceArn", - "/properties/DBSystemId", - "/properties/MasterUserSecret/SecretArn", - "/properties/CertificateDetails/CAIdentifier", - "/properties/CertificateDetails/ValidTill" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::RDS::DBInstance", - "writeOnlyProperties": [ - "/properties/AllowMajorVersionUpgrade", - "/properties/AutomaticBackupReplicationKmsKeyId", - "/properties/CertificateRotationRestart", - "/properties/DBSnapshotIdentifier", - "/properties/DeleteAutomatedBackups", - "/properties/MasterUserPassword", - "/properties/Port", - "/properties/RestoreTime", - "/properties/SourceDBInstanceAutomatedBackupsArn", - "/properties/SourceDBInstanceIdentifier", - "/properties/SourceDbiResourceId", - "/properties/SourceRegion", - "/properties/TdeCredentialPassword", - "/properties/UseDefaultProcessorFeatures", - "/properties/UseLatestRestorableTime" - ] -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-resiliencehub-app.json deleted file mode 100644 index 0c20764ed8..0000000000 --- a/src/cfnlint/data/schemas/providers/me_south_1/aws-resiliencehub-app.json +++ /dev/null @@ -1,288 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "EventSubscription": { - "additionalProperties": false, - "properties": { - "EventType": { - "enum": [ - "ScheduledAssessmentFailure", - "DriftDetected" - ], - "type": "string" - }, - "Name": { - "maxLength": 256, - "type": "string" - }, - "SnsTopicArn": { - "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}$", - "type": "string" - } - }, - "required": [ - "Name", - "EventType" - ], - "type": "object" - }, - "IamRoleArn": { - "pattern": "arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):iam::[0-9]{12}:role\\/(([\\u0021-\\u007E]+\\u002F){1,511})?[A-Za-z0-9+=,.@_/-]{1,64}$", - "type": "string" - }, - "PermissionModel": { - "additionalProperties": false, - "properties": { - "CrossAccountRoleArns": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/IamRoleArn" - }, - "type": "array", - "uniqueItems": false - }, - "InvokerRoleName": { - "pattern": "((\\u002F[\\u0021-\\u007E]+\\u002F){1,511})?[A-Za-z0-9+=,.@_/-]{1,64}", - "type": "string" - }, - "Type": { - "enum": [ - "LegacyIAMUser", - "RoleBased" - ], - "type": "string" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "PhysicalResourceId": { - "additionalProperties": false, - "properties": { - "AwsAccountId": { - "pattern": "^[0-9]{12}$", - "type": "string" - }, - "AwsRegion": { - "pattern": "^[a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]$", - "type": "string" - }, - "Identifier": { - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "Type": { - "pattern": "Arn|Native", - "type": "string" - } - }, - "required": [ - "Identifier", - "Type" - ], - "type": "object" - }, - "ResourceMapping": { - "additionalProperties": false, - "properties": { - "EksSourceName": { - "type": "string" - }, - "LogicalStackName": { - "type": "string" - }, - "MappingType": { - "pattern": "CfnStack|Resource|Terraform|EKS", - "type": "string" - }, - "PhysicalResourceId": { - "$ref": "#/definitions/PhysicalResourceId" - }, - "ResourceName": { - "pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$", - "type": "string" - }, - "TerraformSourceName": { - "type": "string" - } - }, - "required": [ - "MappingType", - "PhysicalResourceId" - ], - "type": "object" - }, - "TagMap": { - "additionalProperties": false, - "patternProperties": { - ".{1,128}": { - "$ref": "#/definitions/TagValue" - } - }, - "type": "object" - }, - "TagValue": { - "maxLength": 256, - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "s3:GetBucketLocation", - "s3:GetObject", - "s3:ListAllMyBuckets", - "autoscaling:DescribeAutoScalingGroups", - "apigateway:GET", - "ec2:Describe*", - "ecs:DescribeServices", - "eks:DescribeCluster", - "elasticfilesystem:DescribeFileSystems", - "elasticloadbalancing:DescribeLoadBalancers", - "lambda:GetFunction*", - "rds:Describe*", - "dynamodb:Describe*", - "sqs:GetQueueAttributes", - "sns:GetTopicAttributes", - "route53:List*", - "iam:PassRole", - "resiliencehub:*" - ] - }, - "delete": { - "permissions": [ - "resiliencehub:DeleteApp", - "resiliencehub:UntagResource", - "resiliencehub:ListApps" - ] - }, - "list": { - "permissions": [ - "resiliencehub:ListApps" - ] - }, - "read": { - "permissions": [ - "resiliencehub:DescribeApp", - "resiliencehub:DescribeAppVersionTemplate", - "resiliencehub:ListAppVersionResourceMappings", - "resiliencehub:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "s3:GetBucketLocation", - "s3:GetObject", - "s3:ListAllMyBuckets", - "autoscaling:DescribeAutoScalingGroups", - "apigateway:GET", - "ec2:Describe*", - "ecs:DescribeServices", - "eks:DescribeCluster", - "elasticfilesystem:DescribeFileSystems", - "elasticloadbalancing:DescribeLoadBalancers", - "lambda:GetFunction*", - "rds:Describe*", - "dynamodb:Describe*", - "sqs:GetQueueAttributes", - "sns:GetTopicAttributes", - "route53:List*", - "iam:PassRole", - "resiliencehub:*" - ] - } - }, - "primaryIdentifier": [ - "/properties/AppArn" - ], - "properties": { - "AppArn": { - "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$", - "type": "string" - }, - "AppAssessmentSchedule": { - "enum": [ - "Disabled", - "Daily" - ], - "type": "string" - }, - "AppTemplateBody": { - "maxLength": 409600, - "minLength": 0, - "pattern": "^[\\w\\s:,-\\.'\\/{}\\[\\]:\"]+$", - "type": "string" - }, - "Description": { - "maxLength": 500, - "minLength": 0, - "type": "string" - }, - "DriftStatus": { - "enum": [ - "NotChecked", - "NotDetected", - "Detected" - ], - "type": "string" - }, - "EventSubscriptions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EventSubscription" - }, - "type": "array", - "uniqueItems": false - }, - "Name": { - "pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$", - "type": "string" - }, - "PermissionModel": { - "$ref": "#/definitions/PermissionModel" - }, - "ResiliencyPolicyArn": { - "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$", - "type": "string" - }, - "ResourceMappings": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ResourceMapping" - }, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "$ref": "#/definitions/TagMap" - } - }, - "readOnlyProperties": [ - "/properties/AppArn", - "/properties/DriftStatus" - ], - "required": [ - "Name", - "AppTemplateBody", - "ResourceMappings" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-resiliencehub", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ResilienceHub::App" -} 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 c99addea35..7fabbe8425 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py @@ -701,6 +701,7 @@ "AWS::AppSync::GraphQLApi", "AWS::GameLift::MatchmakingRuleSet", "AWS::EC2::EgressOnlyInternetGateway", + "AWS::Athena::CapacityReservation", "AWS::SecurityHub::Insight", "AWS::Config::ConformancePack", "AWS::EC2::VPCCidrBlock", @@ -1023,7 +1024,6 @@ "aws-dms-instanceprofile.json", "aws-opensearchserverless-vpcendpoint.json", "aws-quicksight-datasource.json", - "aws-iot-cacertificate.json", "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-transfer-certificate.json", @@ -1239,6 +1239,7 @@ "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", + "aws-rolesanywhere-profile.json", "aws-refactorspaces-environment.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", @@ -1287,7 +1288,6 @@ "aws-apigateway-usageplan.json", "aws-mediapackagev2-channel.json", "aws-batch-schedulingpolicy.json", - "aws-iot-authorizer.json", "aws-mediaconnect-bridgesource.json", "aws-mediapackagev2-channelpolicy.json", "aws-apigatewayv2-vpclink.json", @@ -1380,7 +1380,6 @@ "aws-servicecatalog-tagoption.json", "aws-servicediscovery-privatednsnamespace.json", "aws-servicecatalog-launchroleconstraint.json", - "aws-iot-rolealias.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-secretsmanager-resourcepolicy.json", "aws-cloudformation-hookdefaultversion.json", @@ -1534,7 +1533,6 @@ "aws-elasticache-subnetgroup.json", "aws-xray-group.json", "aws-oam-link.json", - "aws-iot-domainconfiguration.json", "aws-sagemaker-endpoint.json", "aws-elasticloadbalancingv2-truststorerevocation.json", "aws-networkfirewall-firewall.json", @@ -1597,7 +1595,6 @@ "aws-docdb-dbsubnetgroup.json", "aws-logs-delivery.json", "aws-servicecatalog-portfolio.json", - "aws-iot-policy.json", "aws-aps-scraper.json", "aws-ec2-transitgatewayroute.json", "aws-ssm-maintenancewindow.json", @@ -1643,6 +1640,7 @@ "aws-appsync-graphqlapi.json", "aws-gamelift-matchmakingruleset.json", "aws-ec2-egressonlyinternetgateway.json", + "aws-athena-capacityreservation.json", "aws-securityhub-insight.json", "aws-config-conformancepack.json", "aws-ec2-vpccidrblock.json", @@ -1706,7 +1704,6 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", - "aws-iot-certificateprovider.json", "aws-medialive-multiplex.json", "aws-scheduler-schedulegroup.json", "aws-appstream-directoryconfig.json", @@ -1785,7 +1782,6 @@ "aws-ec2-securitygroupingress.json", "aws-guardduty-detector.json", "aws-sagemaker-modelqualityjobdefinition.json", - "aws-iot-provisioningtemplate.json", "aws-appflow-flow.json", "aws-apigateway-stage.json", "aws-budgets-budget.json", diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-authorizer.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-authorizer.json new file mode 100644 index 0000000000..4fd44d03a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-authorizer.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SigningDisabled", + "/properties/AuthorizerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DeleteAuthorizer", + "iot:DescribeAuthorizer" + ] + }, + "list": { + "permissions": [ + "iot:ListAuthorizers" + ] + }, + "read": { + "permissions": [ + "iot:DescribeAuthorizer", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AuthorizerName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerFunctionArn": { + "type": "string" + }, + "AuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "EnableCachingForHttp": { + "type": "boolean" + }, + "SigningDisabled": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TokenKeyName": { + "type": "string" + }, + "TokenSigningPublicKeys": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9:_-]+": { + "maxLength": 5120, + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "AuthorizerFunctionArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-cacertificate.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-cacertificate.json new file mode 100644 index 0000000000..7c56105907 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-cacertificate.json @@ -0,0 +1,174 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/CertificateMode", + "/properties/CACertificatePem" + ], + "definitions": { + "RegistrationConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "TemplateBody": { + "maxLength": 10240, + "minLength": 0, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:RegisterCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateCACertificate", + "iot:DeleteCACertificate", + "iot:DescribeCACertificate" + ] + }, + "list": { + "permissions": [ + "iot:ListCACertificates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCACertificate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AutoRegistrationStatus": { + "enum": [ + "ENABLE", + "DISABLE" + ], + "type": "string" + }, + "CACertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "CertificateMode": { + "enum": [ + "DEFAULT", + "SNI_ONLY" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "RegistrationConfig": { + "$ref": "#/definitions/RegistrationConfig" + }, + "RemoveAutoRegistration": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VerificationCertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "CACertificatePem", + "Status" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CACertificate", + "writeOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/RemoveAutoRegistration" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-certificateprovider.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-certificateprovider.json new file mode 100644 index 0000000000..ea4c9d9f71 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-certificateprovider.json @@ -0,0 +1,125 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateProviderName" + ], + "definitions": { + "CertificateProviderOperation": { + "enum": [ + "CreateCertificateFromCsr" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteCertificateProvider", + "iot:DescribeCertificateProvider" + ] + }, + "list": { + "permissions": [ + "iot:ListCertificateProviders" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCertificateProvider", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/CertificateProviderName" + ], + "properties": { + "AccountDefaultForOperations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CertificateProviderOperation" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Arn": { + "type": "string" + }, + "CertificateProviderName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "LambdaFunctionArn": { + "maxLength": 170, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "LambdaFunctionArn", + "AccountDefaultForOperations" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CertificateProvider" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-domainconfiguration.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-domainconfiguration.json new file mode 100644 index 0000000000..03db5c565e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-domainconfiguration.json @@ -0,0 +1,224 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainConfigurationName", + "/properties/DomainName", + "/properties/ServiceType", + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ], + "definitions": { + "AuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AllowAuthorizerOverride": { + "type": "boolean" + }, + "DefaultAuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w=,@-]+$", + "type": "string" + } + }, + "type": "object" + }, + "ServerCertificateConfig": { + "additionalProperties": false, + "properties": { + "EnableOCSPCheck": { + "type": "boolean" + } + }, + "type": "object" + }, + "ServerCertificateSummary": { + "additionalProperties": false, + "properties": { + "ServerCertificateArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "ServerCertificateStatus": { + "enum": [ + "INVALID", + "VALID" + ], + "type": "string" + }, + "ServerCertificateStatusDetail": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "SecurityPolicy": { + "maxLength": 128, + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateDomainConfiguration", + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:TagResource", + "iot:ListTagsForResource", + "acm:GetCertificate" + ] + }, + "delete": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:DeleteDomainConfiguration", + "iot:UpdateDomainConfiguration" + ] + }, + "list": { + "permissions": [ + "iot:ListDomainConfigurations" + ] + }, + "read": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource", + "iot:TagResource", + "iot:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainConfigurationName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerConfig": { + "$ref": "#/definitions/AuthorizerConfig" + }, + "DomainConfigurationName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w.-]+$", + "type": "string" + }, + "DomainConfigurationStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "DomainName": { + "maxLength": 253, + "minLength": 1, + "type": "string" + }, + "DomainType": { + "enum": [ + "ENDPOINT", + "AWS_MANAGED", + "CUSTOMER_MANAGED" + ], + "type": "string" + }, + "ServerCertificateArns": { + "insertionOrder": true, + "items": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "ServerCertificateConfig": { + "$ref": "#/definitions/ServerCertificateConfig" + }, + "ServerCertificates": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ServerCertificateSummary" + }, + "type": "array" + }, + "ServiceType": { + "enum": [ + "DATA", + "CREDENTIAL_PROVIDER", + "JOBS" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + }, + "ValidationCertificateArn": { + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DomainType", + "/properties/ServerCertificates" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::DomainConfiguration", + "writeOnlyProperties": [ + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ] +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-policy.json new file mode 100644 index 0000000000..6a8b285974 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-policy.json @@ -0,0 +1,110 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreatePolicy", + "iot:GetPolicy", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeletePolicy", + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:DeletePolicyVersion" + ] + }, + "list": { + "permissions": [ + "iot:ListPolicies" + ] + }, + "read": { + "permissions": [ + "iot:GetPolicy", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:CreatePolicyVersion", + "iot:DeletePolicyVersion", + "iot:SetDefaultPolicyVersion", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "maxLength": 404600, + "minLength": 1, + "type": [ + "object", + "string" + ] + }, + "PolicyName": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "PolicyDocument" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-provisioningtemplate.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-provisioningtemplate.json new file mode 100644 index 0000000000..31a4f45b65 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-provisioningtemplate.json @@ -0,0 +1,141 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TemplateName", + "/properties/TemplateType" + ], + "definitions": { + "ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateProvisioningTemplate", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteProvisioningTemplate", + "iot:DescribeProvisioningTemplate" + ] + }, + "list": { + "permissions": [ + "iot:ListProvisioningTemplates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeProvisioningTemplate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateProvisioningTemplate", + "iot:CreateProvisioningTemplateVersion", + "iot:ListProvisioningTemplateVersions", + "iot:DeleteProvisioningTemplateVersion", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TemplateName" + ], + "properties": { + "Description": { + "maxLength": 500, + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TemplateArn": { + "type": "string" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + }, + "TemplateType": { + "enum": [ + "FLEET_PROVISIONING", + "JITP" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TemplateArn" + ], + "required": [ + "ProvisioningRoleArn", + "TemplateBody" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::ProvisioningTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-rolealias.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-rolealias.json new file mode 100644 index 0000000000..5ea03cb1af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-iot-rolealias.json @@ -0,0 +1,124 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RoleAlias" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteRoleAlias", + "iot:DescribeRoleAlias" + ] + }, + "list": { + "permissions": [ + "iot:ListRoleAliases" + ] + }, + "read": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:DescribeRoleAlias", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RoleAlias" + ], + "properties": { + "CredentialDurationSeconds": { + "default": 3600, + "maximum": 43200, + "minimum": 900, + "type": "integer" + }, + "RoleAlias": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleAliasArn": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/RoleAliasArn" + ], + "required": [ + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::RoleAlias" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-rolesanywhere-profile.json deleted file mode 100644 index 9781637c58..0000000000 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-rolesanywhere-profile.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AttributeMapping": { - "additionalProperties": false, - "properties": { - "CertificateField": { - "$ref": "#/definitions/CertificateField" - }, - "MappingRules": { - "items": { - "$ref": "#/definitions/MappingRule" - }, - "type": "array" - } - }, - "required": [ - "CertificateField", - "MappingRules" - ], - "type": "object" - }, - "CertificateField": { - "enum": [ - "x509Subject", - "x509Issuer", - "x509SAN" - ], - "type": "string" - }, - "MappingRule": { - "additionalProperties": false, - "properties": { - "Specifier": { - "type": "string" - } - }, - "required": [ - "Specifier" - ], - "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": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:CreateProfile", - "rolesanywhere:TagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - }, - "delete": { - "permissions": [ - "rolesanywhere:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "rolesanywhere:ListProfiles", - "rolesanywhere:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "rolesanywhere:GetProfile", - "rolesanywhere:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:GetProfile", - "rolesanywhere:UpdateProfile", - "rolesanywhere:EnableProfile", - "rolesanywhere:DisableProfile", - "rolesanywhere:TagResource", - "rolesanywhere:UntagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "AttributeMappings": { - "items": { - "$ref": "#/definitions/AttributeMapping" - }, - "type": "array" - }, - "DurationSeconds": { - "maximum": 43200, - "minimum": 900, - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "ProfileArn": { - "type": "string" - }, - "ProfileId": { - "pattern": "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", - "type": "string" - }, - "RequireInstanceProperties": { - "type": "boolean" - }, - "RoleArns": { - "items": { - "maxLength": 1011, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "SessionPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProfileId", - "/properties/ProfileArn" - ], - "required": [ - "Name", - "RoleArns" - ], - "typeName": "AWS::RolesAnywhere::Profile" -} diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-crawler.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-crawler.json index 91865a14ee..7dcb87f3d8 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-crawler.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-crawler.json @@ -307,23 +307,11 @@ "type": "string" }, "Tags": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] }, "Targets": { "$ref": "#/definitions/Targets" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-customentitytype.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-customentitytype.json index 92396d66a2..f35254735b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-customentitytype.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-customentitytype.json @@ -21,23 +21,11 @@ "type": "string" }, "Tags": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-dataqualityruleset.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-dataqualityruleset.json index be9d62ec90..7c8e340feb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-dataqualityruleset.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-dataqualityruleset.json @@ -34,23 +34,11 @@ "type": "string" }, "Tags": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] }, "TargetTable": { "$ref": "#/definitions/DataQualityTargetTable" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-devendpoint.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-devendpoint.json index 76ba18da46..c9e89c6980 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-devendpoint.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-devendpoint.json @@ -64,23 +64,11 @@ "type": "string" }, "Tags": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] }, "WorkerType": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-job.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-job.json index 286f928880..5ad5c7f347 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-job.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-job.json @@ -126,23 +126,11 @@ "type": "string" }, "Tags": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] }, "Timeout": { "type": "integer" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-mltransform.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-mltransform.json index a476f36e6c..6245bed10a 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-mltransform.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-mltransform.json @@ -137,23 +137,11 @@ "type": "string" }, "Tags": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] }, "Timeout": { "type": "integer" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-trigger.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-trigger.json index 506542a138..974dd89b9f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-trigger.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-trigger.json @@ -142,23 +142,11 @@ "type": "boolean" }, "Tags": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] }, "Type": { "enum": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-workflow.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-workflow.json index b30b9cc616..35c40ad165 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-workflow.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-workflow.json @@ -27,23 +27,11 @@ "type": "string" }, "Tags": { - "items": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "type": "array" + "format": "json", + "type": [ + "object", + "string" + ] } }, "readOnlyProperties": [ 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 4aa4f139cd..1f9b54e91e 100644 --- a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py @@ -859,6 +859,7 @@ "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "AWS::DataBrew::Job", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", "AWS::RDS::DBSubnetGroup", @@ -978,7 +979,6 @@ "aws-logs-resourcepolicy.json", "aws-servicecatalog-launchnotificationconstraint.json", "aws-dms-instanceprofile.json", - "aws-iot-cacertificate.json", "aws-ec2-networkaclentry.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", "aws-transfer-certificate.json", @@ -1183,6 +1183,7 @@ "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", + "aws-rolesanywhere-profile.json", "aws-refactorspaces-environment.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", @@ -1226,7 +1227,6 @@ "aws-apigateway-usageplan.json", "aws-mediapackagev2-channel.json", "aws-batch-schedulingpolicy.json", - "aws-iot-authorizer.json", "aws-mediaconnect-bridgesource.json", "aws-mediapackagev2-channelpolicy.json", "aws-iot-jobtemplate.json", @@ -1316,7 +1316,6 @@ "aws-servicecatalog-tagoption.json", "aws-servicediscovery-privatednsnamespace.json", "aws-servicecatalog-launchroleconstraint.json", - "aws-iot-rolealias.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-secretsmanager-resourcepolicy.json", "aws-cloudformation-hookdefaultversion.json", @@ -1464,7 +1463,6 @@ "aws-elasticache-subnetgroup.json", "aws-xray-group.json", "aws-oam-link.json", - "aws-iot-domainconfiguration.json", "aws-sagemaker-endpoint.json", "aws-elasticloadbalancingv2-truststorerevocation.json", "aws-networkfirewall-firewall.json", @@ -1523,7 +1521,6 @@ "aws-glue-schema.json", "aws-logs-delivery.json", "aws-servicecatalog-portfolio.json", - "aws-iot-policy.json", "aws-ec2-transitgatewayroute.json", "aws-ssm-maintenancewindow.json", "aws-lakeformation-tagassociation.json", @@ -1624,7 +1621,6 @@ "aws-waf-xssmatchset.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", - "aws-iot-certificateprovider.json", "aws-scheduler-schedulegroup.json", "aws-devopsguru-notificationchannel.json", "aws-codestar-githubrepository.json", @@ -1699,7 +1695,6 @@ "aws-ec2-securitygroupingress.json", "aws-guardduty-detector.json", "aws-sagemaker-modelqualityjobdefinition.json", - "aws-iot-provisioningtemplate.json", "aws-appflow-flow.json", "aws-apigateway-stage.json", "aws-budgets-budget.json", @@ -1745,6 +1740,7 @@ "aws-pcaconnectorad-templategroupaccesscontrolentry.json", "aws-databrew-job.json", "aws-ec2-transitgatewaypeeringattachment.json", + "aws-ecr-repositorycreationtemplate.json", "aws-cloudfront-cachepolicy.json", "aws-iam-accesskey.json", "aws-rds-dbsubnetgroup.json", diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-authorizer.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-authorizer.json new file mode 100644 index 0000000000..4fd44d03a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-authorizer.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SigningDisabled", + "/properties/AuthorizerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DeleteAuthorizer", + "iot:DescribeAuthorizer" + ] + }, + "list": { + "permissions": [ + "iot:ListAuthorizers" + ] + }, + "read": { + "permissions": [ + "iot:DescribeAuthorizer", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AuthorizerName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerFunctionArn": { + "type": "string" + }, + "AuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "EnableCachingForHttp": { + "type": "boolean" + }, + "SigningDisabled": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TokenKeyName": { + "type": "string" + }, + "TokenSigningPublicKeys": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9:_-]+": { + "maxLength": 5120, + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "AuthorizerFunctionArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-cacertificate.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-cacertificate.json new file mode 100644 index 0000000000..7c56105907 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-cacertificate.json @@ -0,0 +1,174 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/CertificateMode", + "/properties/CACertificatePem" + ], + "definitions": { + "RegistrationConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "TemplateBody": { + "maxLength": 10240, + "minLength": 0, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:RegisterCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateCACertificate", + "iot:DeleteCACertificate", + "iot:DescribeCACertificate" + ] + }, + "list": { + "permissions": [ + "iot:ListCACertificates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCACertificate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AutoRegistrationStatus": { + "enum": [ + "ENABLE", + "DISABLE" + ], + "type": "string" + }, + "CACertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "CertificateMode": { + "enum": [ + "DEFAULT", + "SNI_ONLY" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "RegistrationConfig": { + "$ref": "#/definitions/RegistrationConfig" + }, + "RemoveAutoRegistration": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VerificationCertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "CACertificatePem", + "Status" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CACertificate", + "writeOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/RemoveAutoRegistration" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-certificateprovider.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-certificateprovider.json new file mode 100644 index 0000000000..ea4c9d9f71 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-certificateprovider.json @@ -0,0 +1,125 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateProviderName" + ], + "definitions": { + "CertificateProviderOperation": { + "enum": [ + "CreateCertificateFromCsr" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteCertificateProvider", + "iot:DescribeCertificateProvider" + ] + }, + "list": { + "permissions": [ + "iot:ListCertificateProviders" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCertificateProvider", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/CertificateProviderName" + ], + "properties": { + "AccountDefaultForOperations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CertificateProviderOperation" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Arn": { + "type": "string" + }, + "CertificateProviderName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "LambdaFunctionArn": { + "maxLength": 170, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "LambdaFunctionArn", + "AccountDefaultForOperations" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CertificateProvider" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-domainconfiguration.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-domainconfiguration.json new file mode 100644 index 0000000000..03db5c565e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-domainconfiguration.json @@ -0,0 +1,224 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainConfigurationName", + "/properties/DomainName", + "/properties/ServiceType", + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ], + "definitions": { + "AuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AllowAuthorizerOverride": { + "type": "boolean" + }, + "DefaultAuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w=,@-]+$", + "type": "string" + } + }, + "type": "object" + }, + "ServerCertificateConfig": { + "additionalProperties": false, + "properties": { + "EnableOCSPCheck": { + "type": "boolean" + } + }, + "type": "object" + }, + "ServerCertificateSummary": { + "additionalProperties": false, + "properties": { + "ServerCertificateArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "ServerCertificateStatus": { + "enum": [ + "INVALID", + "VALID" + ], + "type": "string" + }, + "ServerCertificateStatusDetail": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "SecurityPolicy": { + "maxLength": 128, + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateDomainConfiguration", + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:TagResource", + "iot:ListTagsForResource", + "acm:GetCertificate" + ] + }, + "delete": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:DeleteDomainConfiguration", + "iot:UpdateDomainConfiguration" + ] + }, + "list": { + "permissions": [ + "iot:ListDomainConfigurations" + ] + }, + "read": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource", + "iot:TagResource", + "iot:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainConfigurationName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerConfig": { + "$ref": "#/definitions/AuthorizerConfig" + }, + "DomainConfigurationName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w.-]+$", + "type": "string" + }, + "DomainConfigurationStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "DomainName": { + "maxLength": 253, + "minLength": 1, + "type": "string" + }, + "DomainType": { + "enum": [ + "ENDPOINT", + "AWS_MANAGED", + "CUSTOMER_MANAGED" + ], + "type": "string" + }, + "ServerCertificateArns": { + "insertionOrder": true, + "items": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "ServerCertificateConfig": { + "$ref": "#/definitions/ServerCertificateConfig" + }, + "ServerCertificates": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ServerCertificateSummary" + }, + "type": "array" + }, + "ServiceType": { + "enum": [ + "DATA", + "CREDENTIAL_PROVIDER", + "JOBS" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + }, + "ValidationCertificateArn": { + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DomainType", + "/properties/ServerCertificates" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::DomainConfiguration", + "writeOnlyProperties": [ + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-policy.json new file mode 100644 index 0000000000..6a8b285974 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-policy.json @@ -0,0 +1,110 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreatePolicy", + "iot:GetPolicy", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeletePolicy", + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:DeletePolicyVersion" + ] + }, + "list": { + "permissions": [ + "iot:ListPolicies" + ] + }, + "read": { + "permissions": [ + "iot:GetPolicy", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:CreatePolicyVersion", + "iot:DeletePolicyVersion", + "iot:SetDefaultPolicyVersion", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "maxLength": 404600, + "minLength": 1, + "type": [ + "object", + "string" + ] + }, + "PolicyName": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "PolicyDocument" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-provisioningtemplate.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-provisioningtemplate.json new file mode 100644 index 0000000000..31a4f45b65 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-provisioningtemplate.json @@ -0,0 +1,141 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TemplateName", + "/properties/TemplateType" + ], + "definitions": { + "ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateProvisioningTemplate", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteProvisioningTemplate", + "iot:DescribeProvisioningTemplate" + ] + }, + "list": { + "permissions": [ + "iot:ListProvisioningTemplates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeProvisioningTemplate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateProvisioningTemplate", + "iot:CreateProvisioningTemplateVersion", + "iot:ListProvisioningTemplateVersions", + "iot:DeleteProvisioningTemplateVersion", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TemplateName" + ], + "properties": { + "Description": { + "maxLength": 500, + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TemplateArn": { + "type": "string" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + }, + "TemplateType": { + "enum": [ + "FLEET_PROVISIONING", + "JITP" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TemplateArn" + ], + "required": [ + "ProvisioningRoleArn", + "TemplateBody" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::ProvisioningTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-rolealias.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-rolealias.json new file mode 100644 index 0000000000..5ea03cb1af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-iot-rolealias.json @@ -0,0 +1,124 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RoleAlias" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteRoleAlias", + "iot:DescribeRoleAlias" + ] + }, + "list": { + "permissions": [ + "iot:ListRoleAliases" + ] + }, + "read": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:DescribeRoleAlias", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RoleAlias" + ], + "properties": { + "CredentialDurationSeconds": { + "default": 3600, + "maximum": 43200, + "minimum": 900, + "type": "integer" + }, + "RoleAlias": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleAliasArn": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/RoleAliasArn" + ], + "required": [ + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::RoleAlias" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-rolesanywhere-profile.json deleted file mode 100644 index 9781637c58..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_1/aws-rolesanywhere-profile.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "AttributeMapping": { - "additionalProperties": false, - "properties": { - "CertificateField": { - "$ref": "#/definitions/CertificateField" - }, - "MappingRules": { - "items": { - "$ref": "#/definitions/MappingRule" - }, - "type": "array" - } - }, - "required": [ - "CertificateField", - "MappingRules" - ], - "type": "object" - }, - "CertificateField": { - "enum": [ - "x509Subject", - "x509Issuer", - "x509SAN" - ], - "type": "string" - }, - "MappingRule": { - "additionalProperties": false, - "properties": { - "Specifier": { - "type": "string" - } - }, - "required": [ - "Specifier" - ], - "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": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:CreateProfile", - "rolesanywhere:TagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - }, - "delete": { - "permissions": [ - "rolesanywhere:DeleteProfile" - ] - }, - "list": { - "permissions": [ - "rolesanywhere:ListProfiles", - "rolesanywhere:ListTagsForResource" - ] - }, - "read": { - "permissions": [ - "rolesanywhere:GetProfile", - "rolesanywhere:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iam:GetRole", - "iam:GetPolicy", - "iam:PassRole", - "rolesanywhere:GetProfile", - "rolesanywhere:UpdateProfile", - "rolesanywhere:EnableProfile", - "rolesanywhere:DisableProfile", - "rolesanywhere:TagResource", - "rolesanywhere:UntagResource", - "rolesanywhere:ListTagsForResource", - "rolesanywhere:PutAttributeMapping", - "rolesanywhere:DeleteAttributeMapping" - ] - } - }, - "primaryIdentifier": [ - "/properties/ProfileId" - ], - "properties": { - "AttributeMappings": { - "items": { - "$ref": "#/definitions/AttributeMapping" - }, - "type": "array" - }, - "DurationSeconds": { - "maximum": 43200, - "minimum": 900, - "type": "number" - }, - "Enabled": { - "type": "boolean" - }, - "ManagedPolicyArns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "Name": { - "type": "string" - }, - "ProfileArn": { - "type": "string" - }, - "ProfileId": { - "pattern": "[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}", - "type": "string" - }, - "RequireInstanceProperties": { - "type": "boolean" - }, - "RoleArns": { - "items": { - "maxLength": 1011, - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "SessionPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 200, - "minItems": 0, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/ProfileId", - "/properties/ProfileArn" - ], - "required": [ - "Name", - "RoleArns" - ], - "typeName": "AWS::RolesAnywhere::Profile" -}